読者です 読者をやめる 読者になる 読者になる

ほげほげ(仮)

仮死状態

iOSキーボード上部にView表示とキーボード部分を置き換える

iOS Objective-C

ちょっと良いタイトルが思いつかないし、なんかよく分かんないタイトルになってしまった。

やりたかったことはiOSはてブアプリのタグ入力の画面のようなやつです。

f:id:STAR_ZERO:20140805163846p:plain

キーボード上部のSegmented Controlでキーボード部分が切り替えるみたいなことがやりたかったのです。

キーボード上部にViewを表示

はてブアプリの例だとキーボードおすすめタグタグのSegmented Controlの部分の表示です。

UIView *inputAccessoryView = ... // なんかView

self.textField.inputAccessoryView = inputAccessoryView;

キーボードが表示される対象のUITextFieldもしくはUITextViewinputAccessoryViewに表示したいViewを設定します。

これでキーボードが表示されると同時にinputAccessoryViewに設定したViewも表示されます。

キーボードの部分を置き換える

はてブアプリの例だと通常のキーボード(左側のスクショ)とタグ一覧(右側のスクショ)で切り替えが可能になってます。

これは例えばボタンが押された時に次のようにすると切り替えができます。

UIView *inputView = ... // なんかView

self.textField.inputView = inputView;
[self.textField reloadInputViews];

UITextFieldもしくはUITextViewinputViewに設定します。

reloadInputViewsっていうのが重要で、これがないと既にキーボードが表示されている状態で切り替えがされません。

通常のキーボードに戻すにはinputViewnilを設定します。

self.textField.inputView = nil;
[self.textField reloadInputViews];

関係無いですが

iOSはてブアプリでfavicon出なくなったんですけど、ぼくだけですかね…?