以下のコードがありますが、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;
}