makotton.com

UITextFieldのinputViewにUIPickerViewを設定し、ピッカー以外からの入力を受け付けないようにする方法

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので十分ご注意ください。

UITextFieldのinputViewにUIPickerViewを設定した状態でUITextFieldをリードオンリーにするとイベントを受け付けなくなってしまいピッカーが表示されません。テキストフィールドに対してピッカー以外からの入力を受け付けないようしたい場合はUITextFieldDelegateの

optional public func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool

を利用します。

[bash]
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
return false
}
[/bash]

これで、UITextFieldをリードオンリーにしなくてもタップイベントを認識し、ピッカー以外からの入力を受け付けないようになりました。

[adsense]

キーボードあるいはピッカーからの入力を受け付けるテキストフィールドがある場合は、テキストフィールドにtagを設定し、パラメータのtextFieldのtagを調べて除外しましょう。

モバイルバージョンを終了