こんなTextFieldを実装したのでメモしとく
- 入力カーソル:無効
- 範囲選択:無効
- コピー・ペースト・選択:無効(吹き出しが出ないようにする)
CustomTextField.swift
import UIKit
class CustomTextField: UITextField {
// 入力カーソル:無効
override func caretRect(for position: UITextPosition) -> CGRect {
return CGRect.zero
}
// 範囲選択:無効
func selectionRects(for range: UITextRange) -> [Any] {
return []
}
// コピー・ペースト・選択:無効
override func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool {
return false
}
}
ちなみに、、、
CustomTextField.swift
open var caretFlag: Bool = false
// 入力カーソル:無効、有効の切り替え
override func caretRect(for position: UITextPosition) -> CGRect {
if caretFlag {
return super.caretRect(for: position)
} else {
return CGRect.zero
}
}
こうすることでcaretFlag
がtrueならカーソル非表示、falseならカーソル表示に切り替えが可能です。
Storyboardの場合はCustomTextFieldをクラスとして指定してやれば実装完了です。