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

By | 2016年10月13日

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

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

を利用します。

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

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

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


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です