viewDidLoad時にキーボードを自動的に表示するにはどうすればよいですか?また、UITextFieldを使用してキーボードを表示したくありません。
3 に答える
次の方法で実行できます。
UIView のサブクラス化 (UIResponder のサブクラス)
UIView サブクラスをプロトコル UIKeyInput に準拠させます。これを行うには、クラス宣言に < UIKeyInput > を追加し、このコードを .m ファイルに追加します。
次のコードを追加します。
-(BOOL)hasText;
{
return YES;
}
-(void)insertText:(NSString *)text;
{
// what to do when a text is inserted
}
-(void)deleteBackward;
{
// what to do when delete is pressed
}
-(BOOL)canBecomeFirstResponder
{
// return yes if your control can become first responder and show the keyboard
return YES;
}
- このカスタム ビューの新しいインスタンスを作成し、現在のウィンドウのサブビューとして追加します (そうしないと機能しません)。
次に、キーボードを表示するには、[myView becomeFirstResponder] を呼び出すだけです。試してみただけで、うまく機能します。
編集: 試していませんが、uiview だけでなく、UIView のサブクラスであり、ウィンドウ階層に追加できるすべての種類のオブジェクトをサブクラス化する必要があります。単に UIKeyInput プロトコルに準拠する必要があります。
ビューに UITextField を追加して呼び出します。[myTextfield becomeFirstResponder];
次に、非表示に設定しmyTextfield.hidden = true
ます。ユーザーにはテキストフィールドが表示されません。
UITextField なしで私が知っている唯一の方法は、(非公開、文書化されていない)UIKeyBoard
クラスのインスタンスを作成して追加することです。実装はこちらのshowKeyboard:animated:
メソッドにあります。