iOS textFieldShouldReturn未运行

时间:2014-01-21 11:17:17

标签: ios iphone objective-c uitextfielddelegate

我在我的.h中创建了这个:

@interface Class : UIViewController <UITextFieldDelegate

然后在我的.m:

- (BOOL)textFieldShouldReturn:(UITextField *)textField {    
if (textField == username) {
    [textField resignFirstResponder];

}else if (textField == password) {
    [textField resignFirstResponder];

}
return YES;
}

但是当我尝试在if for username或password中运行一些代码时,它永远不会运行。我试图调试它,但是当我点击我的文本字段时,它只是打开键盘而不是调试。所以似乎textFieldShouldReturn永远不会运行,为什么?

非常感谢任何帮助。

解决方案:添加:     username.delegate = password.delegate = self;在你的.m文件中

4 个答案:

答案 0 :(得分:0)

这不会通过点击文本字段来调用,只有当你按下键盘上的返回键时才会调用它。确保您已正确设置代理。

答案 1 :(得分:0)

textFieldShouldReturn:method的目的是确定文本字段是否应该按下[虚拟]键盘上的返回按钮。

我假设您正在寻找textFieldShouldEndEditing:委托方法。

PS。我假设你设置了密码.delegate = username.delegate = self;

答案 2 :(得分:0)

当您按下键盘上的返回键而不是触摸文本字段时,将调用此函数

触摸文本字段时调用的函数是

- (void)textFieldDidBeginEditing:(UITextField *)textField
if (textField == username) {
    [textField resignFirstResponder];

}else if (textField == password) {
    [textField resignFirstResponder];

}

答案 3 :(得分:0)

您甚至可以尝试通过将outlet-delegate连接到文件所有者来为xib / storyboard设置用户名和密码textfield的委托。这可能会解决你的问题。