いくつかのプライベート関数や疑わしいトリックを使用せずに、キーボードのアクセサリビューにボタンを追加する方法を探しています。これは、 UIWebViewの入力フィールドにタッチしたときに表示されるボタンです。
私がこれを行う方法を知っていますか?
注:キーボードの表示/非表示イベントをキャッチする方法を知っています。私が求めているのは、ボタンを追加する方法です。
いくつかのプライベート関数や疑わしいトリックを使用せずに、キーボードのアクセサリビューにボタンを追加する方法を探しています。これは、 UIWebViewの入力フィールドにタッチしたときに表示されるボタンです。
私がこれを行う方法を知っていますか?
注:キーボードの表示/非表示イベントをキャッチする方法を知っています。私が求めているのは、ボタンを追加する方法です。
これについては、 UIWindowリファレンスUIKeyboardWillShowNotification
を調べて情報を確認してください。
[[NSNotificationCenter defaultCenter]
addObserver:self selector:@selector(keyboardWillShow:)
name:UIKeyboardWillShowNotification object:nil];
この通知は、 からでもUIWebView
テキストフィールドが選択されている場合に発生します。
これを行う方法を示すAppleKeyboardAccessoryサンプルコードを見てください。そのサンプルコードはUITextXxxxinputAccessoryView
プロパティを使用していますが、使用できるとは思えません。ただし、通知により、アクセサリをビューに直接追加したり、UIWindowの上部に追加したりするのに十分な情報が得られます。また、キーボードでアニメーション化することもできます。
(gdb) po notification
NSConcreteNotification 0xb5a2190 {name = UIKeyboardWillShowNotification; userInfo = {
UIKeyboardAnimationCurveUserInfoKey = 0;
UIKeyboardAnimationDurationUserInfoKey = "0.300000011920929";
UIKeyboardBoundsUserInfoKey = "NSRect: {{0, 0}, {320, 260}}";
UIKeyboardCenterBeginUserInfoKey = "NSPoint: {160, 610}";
UIKeyboardCenterEndUserInfoKey = "NSPoint: {160, 350}";
UIKeyboardFrameBeginUserInfoKey = "NSRect: {{0, 480}, {320, 260}}";
UIKeyboardFrameEndUserInfoKey = "NSRect: {{0, 220}, {320, 260}}";
}}
UIKit を使用すると、アプリケーションはシステム キーボードの代わりにカスタム入力ビューを使用できます。また、アプリケーションがシステム キーボードまたはカスタム入力ビューの上にアクセサリ ビューを持つこともできます。さらに、ユーザーが入力ビューまたは入力アクセサリ ビューのコントロールをタップしたときに、アプリケーションがキークリック音を再生できるようにします。
詳しくはこちら