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

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

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を調べて除外しましょう。


コメントを残す

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