【Swift備忘録】UITextFieldでテキスト部分はフォーカスさせずにアクセサリーボタンのみ反応させる方法
カレンダーを表示して日付を変更することにしたので、
テキストフィールドの部分の右端にカレンダーボタンを設置して、それをタップするとカレンダー表示としたかったのですが、テキストフィールド部分をタップするとキーボードがでちゃうけど、
textFieldA.isEnabled = falseとかだとカレンダーボタンもタップできない問題があった。
// テキストフィールドの入力ビューをnilに設定してキーボードが表示されないようにする
textFieldA.inputView = nil
ついでにカレンダーボタンはシステムボタンで・・・
// カレンダーアイコンの設定
let calendarImage = UIImage(systemName: "calendar")
// カレンダーアイコンを表示するカスタムボタンの作成
let calendarButton = UIButton(type: .custom)
calendarButton.frame = CGRect(x: 0, y: 0, width: 30, height: 30)
calendarButton.setImage(calendarImage, for: .normal)
// カスタムボタンがタップされたときの処理
calendarButton.addTarget(self, action: #selector(calendarButtonTapped), for: .touchUpInside)
// テキストフィールドの右端にカスタムボタンを設定
textFieldA.rightView = calendarButton
textFieldA.rightViewMode = .always
以上。