2012-04-30 19 views
2

メインのView Controllerで作成したテキスト入力(UITextField)をユーザーの入力に反応させたい(特にキーボードの "return"キーをタップすると)これを行う方法はありません。プログラムで作成したコントロールでiOS UIイベントを検出する

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

私はInterface Builderでコントロールを作成し、そのイベントが正常に接続されているが、どのように私はそれを制御するために、オブジェクトのネタを得るのですかでき

私は隠すことができるようにしたいです( /それを表示し、おそらく私のコードから再配置)?

は再び私は私のために働くだろう、この

どちらのルートを実行する方法を見つけることができません - 私は本当に私がするUITextFieldを作成する方法気にしません。

TIA

マイク・泥炭

+0

ありがとうございます。私は約3日間この頭を叩いていた。しかし、質問を投稿してすぐにもう一度別のルートに行くのが疲れました.Interface BuilderでUITextFieldを作成し、そのハンドルを取得しようとしました。私が何をしていたかについての私の理解は、その方向への私の元々の努力(間違った物と間違った場所で行われていたと思う)から、ほんの数分でうまくいったので、 –

+0

私が上で言ったように、私はそれが働くことができる限り、どんなにお粗末なものが作られるのか気にしません。それをInterface Builderで作成すると、View Controllerのメソッドにイベント(「終了時に終了しましたか終了しましたか」)をフックしてそこから移動することができました。彼らは両方のアプローチを見ていましたが、それらを実装する方法を知らなかった...あなたのおかげで、今私は! –

答えて

1

あなたは、このような通知センターにオブザーバーを追加することができます。あなたがする必要がある

-(void) keyPressed: (NSNotification*) notification 
{ 
    NSLog([[notification object]text]); 
} 
1

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

と、対応するメソッドを実装TextFieldのデリゲートを設定します。

textField.delegate = self; 

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

あなたはデリゲートMethodeので変数UserInputに反応することができます。

- (void)textFieldDidEndEditing:(UITextField *)textField 

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

希望押され、これは何ですお探しの方は

関連する問題