我正在使用iOS 5并尝试将TextField与UITextFieldDelegate一起使用,它的工作方式与我想要的完全相同(但在第一个视图中)。我不明白,为什么它不适用于下一个视图。
举个简单的例子,我创建了一个新项目(ViewController)。在那里我添加了一个按钮,连接到另一个视图(SecondViewController)。在SecondViewController中,我有一个TextField。有了这个textField,我想使用textFieldShouldReturn。但似乎这个方法没有被调用。我所知道的,我应该在ViewDidLoad中编写委托。我应该写myTextField.delegate = self; ?但我觉得有些不对劲。我使用调试,总是在那个位置,我遇到了问题。你能告诉我,问题是什么?我该如何解决呢;(
提前致谢.....
这是我的代码(它在第一个视图(ViewController)中工作。不幸的是这里没有(SecondViewController):
@interface SecondViewController : UIViewController<UITextFieldDelegate>
@property (strong, nonatomic) IBOutlet UITextField *myTextField;
@end
@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;
}
答案 0 :(得分:2)
问题解决了...... :)
问题是从firstView
到secondView
的连接。
如果要添加Controller,请不要使用addSubView
!
使用presentModalViewController
:)
希望它有所帮助,以防你遇到像我一样的问题。
答案 1 :(得分:0)
在nib文件中,请检查您是否已选中文本字段的自动启用返回键复选框。