2

以下のコードがありますが、textFieldShouldReturnメソッドが呼び出されない理由がわかりません。IBを使用してデリゲートへの接続を作成すると機能しますが、プログラムで実行すると、ログステートメントが表示されません。私はここで何が間違っているのですか?

次に、でtextFieldShouldReturn、いくつかの例はを返しYES、いくつかはを返しNOます。iOSのドキュメントでは、戻るYESとデフォルトの実装が提供されると指定されています。誰かがこれをもっと詳しく説明できますか?

//.hファイル

@interface GoSocietyLoginController : UIViewController <UITextFieldDelegate> {    
}
- (IBAction)textFieldDoneEditing:(id)sender;
- (BOOL)textFieldShouldReturn:(UITextField *)textField;

@end

//.mファイル

@interface GoSocietyLoginController ()

@property (nonatomic,retain) IBOutlet UITextField   *login;
@property (nonatomic,retain) IBOutlet UITextField   *password;

@end


@implementation GoSocietyLoginController

@synthesize login;
@synthesize password;

    - (void)viewDidLoad
    {    
        [super viewDidLoad];
        [login setDelegate:self];
        [password setDelegate:self];
    }

    - (BOOL)textFieldShouldReturn:(UITextField *)textField {
        NSLog(@"Hello World");

        if ([textField isEqual:login]) {
            [password becomeFirstResponder];
        }

        return NO;
    }
4

1 に答える 1

0

あなたが投稿したコードから、あなたがヘッダーでアウトレットを宣言したようには見えません:

IBOutlet UITextField *login;
IBOutlet UITextField *password;

必ずそれらを宣言し、IBで接続を設定してください。

于 2011-07-07T22:34:11.077 に答える