2009-07-21 25 views
0

私は、ユーザーに質問をし、ユーザーの反応が次の操作を決定するのを待つ必要があるクラスを持っています。これを行う最善の方法は何でしょうか?デリゲートの使用?どうやって?私はクラスにUITextFieldとUITextFieldを持っています。質問と代理質問

おかげ

答えて

1

すべては、ユーザーがデータを送信する方法に依存します。最もフレンドリーな方法は、TahoeWolverineが- (BOOL)textFieldShouldReturn:(UITextField *)textFieldUITextFieldDelegateから説明して実装しているようにすることです。これを使用するには、textFieldShouldReturn:を実装しているクラスは、インタフェース宣言に<UITextFieldDelegate>プロトコルを持っていなければなりません。さらに、問題のテキストフィールドは、UITextFieldDelegateを実装するクラスをデリゲートとして設定する必要があります。ほとんどの場合、それらは次のようになります。

@interface SomeViewController : UIViewController <UITextFieldDelegate> { 
    UITextField *myField; 
} 

@property (nonatomic, retain) IBOutlet UITextField *myfield 
@end 

とどこかの実装で:

[[self myField] setDelegate:self]; 

最後に、UITextFieldDelegateプロトコルの実装:

- (BOOL)textFieldShouldReturn:(UITextField *)textField { 
    if (textField == [self myField]) { 
     [self doSomethingWithText:[[self myField] text]]; 
    } 
} 

希望に役立ちます。

+0

ええ、私は実際に別のアプリで、素晴らしい提案をtextFieldShouldReturnを使用しました。 – Xcoder

0

はい、デリゲートを使用して、(私はあなたがユーザーにキーボードを提示していると仮定しています)、キーボードの[完了]ボタンにそれをリンクする必要があります。デリゲートをキーボードのリターンキーにリンクするだけで、そのトリックを行う必要があります。