私は iOS 5 を使用しており、UITextFieldDelegate で TextField を使用しようとしていますが、まさに私が望むように機能します (ただし、最初のビューでのみ)。次のビューで機能しない理由がわかりません。
簡単な例として、新しいプロジェクト (ViewController) を作成しました。そこで、別のビュー (SecondViewController) に接続するボタンを 1 つ追加しました。SecondViewController には、TextField が 1 つあります。この textField では、textFieldShouldReturn を使用したいと思います。しかし、このメソッドは呼び出されていないようです。私が知っていることは、デリゲートを ViewDidLoad に記述する必要があるということです。myTextField.delegate = self; と書くべきですか?? しかし、私はそこで何かが間違っていると思います。私はデバッグを使用しましたが、常にその位置で問題が発生しています。教えてください、何が問題なのですか?どうすれば解決できますか;(
前もって感謝します.....
ここに私のコードがあります(最初のビュー(ViewController)で動作します。残念ながらここではありません(SecondViewController):
SecondViewController.h
@interface SecondViewController : UIViewController<UITextFieldDelegate>
@property (strong, nonatomic) IBOutlet UITextField *myTextField;
@end
SecondViewController.m
@implementation SecondViewController
@synthesize myTextField;
- (void)viewDidLoad{
[super viewDidLoad];
myTextField.delegate = self; // here i get the problem
}
-(BOOL) textFieldShouldReturn:(UITextField *)textField{ // this method is not being called
[textField resignFirstResponder];
NSLog(@"is called!");
NSString *valueMyTextField = myTextField.text;
NSLog(@"%@", valueMyTextField);
return YES;
}