2

viewDidLoad時にキーボードを自動的に表示するにはどうすればよいですか?また、UITextFieldを使用してキーボードを表示したくありません。

4

3 に答える 3

1

次の方法で実行できます。

  • 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 プロトコルに準拠する必要があります。

于 2012-11-06T15:22:42.583 に答える
1

ビューに UITextField を追加して呼び出します。[myTextfield becomeFirstResponder];次に、非表示に設定しmyTextfield.hidden = trueます。ユーザーにはテキストフィールドが表示されません。

于 2012-11-05T21:43:45.563 に答える
0

UITextField なしで私が知っている唯一の方法は、(非公開、文書化されていない)UIKeyBoardクラスのインスタンスを作成して追加することです。実装はこちらshowKeyboard:animated:メソッドにあります。

于 2012-11-05T21:43:18.897 に答える