ちょっと良いタイトルが思いつかないし、なんかよく分かんないタイトルになってしまった。
やりたかったことはiOSはてブアプリのタグ入力の画面のようなやつです。
キーボード上部のSegmented Controlでキーボード部分が切り替えるみたいなことがやりたかったのです。
キーボード上部にViewを表示
はてブアプリの例だとキーボード
、おすすめタグ
、タグ
のSegmented Controlの部分の表示です。
UIView *inputAccessoryView = ... // なんかView self.textField.inputAccessoryView = inputAccessoryView;
キーボードが表示される対象のUITextField
もしくはUITextView
のinputAccessoryView
に表示したいViewを設定します。
これでキーボードが表示されると同時にinputAccessoryView
に設定したViewも表示されます。
キーボードの部分を置き換える
はてブアプリの例だと通常のキーボード(左側のスクショ)とタグ一覧(右側のスクショ)で切り替えが可能になってます。
これは例えばボタンが押された時に次のようにすると切り替えができます。
UIView *inputView = ... // なんかView self.textField.inputView = inputView; [self.textField reloadInputViews];
UITextField
もしくはUITextView
のinputView
に設定します。
reloadInputViews
っていうのが重要で、これがないと既にキーボードが表示されている状態で切り替えがされません。
通常のキーボードに戻すにはinputView
にnil
を設定します。
self.textField.inputView = nil; [self.textField reloadInputViews];