2

メインのViewControllerで作成したテキスト入力(UITextField)をユーザーの入力に反応させたいのですが(特に、ユーザーがキーボードの「リターン」キーをタップしたとき)、これを行う方法が見つかりません。

これを行う「通常の」方法は、Interface Builderでコントロールを作成し、それを使用してコントロール上のイベントを公開されたIBActionメソッドに接続することであることを理解していますが、InterfaceBuilderなしでこれを実行したいと思います。

あるいは

Interface Builderでコントロールを作成し、そのイベントを正常に接続することはできますが、コードからオブジェクトを制御するためにオブジェクトを取得するにはどうすればよいですか(非表示/表示し、場合によっては再配置できるようにしたいだけです)。

繰り返しますが、これを行う方法が見つかりません

どちらのルートでもうまくいきます-UITextFieldをどのように作成するかは本当に気にしません。

TIA

マイクピート

4

2 に答える 2

1

次のように、オブザーバーを通知センターに追加できます。

[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(keyPressed:) name: UITextFieldTextDidChangeNotification object: nil];

対応するメソッドを実装します。

-(void) keyPressed: (NSNotification*) notification
{
  NSLog([[notification object]text]);
}
于 2012-04-30T10:07:06.223 に答える
1

TextField のデリゲートを設定する必要があります。

textField.delegate = self;

デリゲートには、textField のアクションに反応する特定のメソッドがあります。

デリゲート メソッドを使用して UserInput に応答できます。

- (void)textFieldDidEndEditing:(UITextField *)textField

DoneKey (または編集を終了するために使用する任意のキー) が押された後に呼び出されます。

これがあなたが探しているものであることを願っています

于 2012-04-30T10:14:30.217 に答える