我正在使用 iOS 5 并尝试将 TextField 与 UITextFieldDelegate 一起使用,它的工作方式与我想要的完全一样(但只是在第一个视图中)。我不明白,为什么它在下一个视图中不起作用。
举个简单的例子,我创建了新项目(ViewController)。在那里我添加了一个按钮,它连接到另一个视图(SecondViewController)。在 SecondViewController 中,我有一个 TextField。有了这个 textField,我想使用 textFieldShouldReturn。但似乎没有调用此方法。据我所知,我应该在 ViewDidLoad 中编写委托。我应该写 myTextField.delegate = self; ? 但我认为那里有问题。我使用了调试,并且总是在那个位置,我遇到了问题。你能告诉我,问题是什么吗?以及我该如何解决它;(
提前致谢.....
这是我的代码(它在第一个视图(ViewController)中有效。不幸的是这里不是(SecondViewController):
SecondViewController.h
@interface SecondViewController : UIViewController<UITextFieldDelegate>
@property (strong, nonatomic) IBOutlet UITextField *myTextField;
@end
第二视图控制器.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;
}