我在我的.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文件中
答案 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的委托。这可能会解决你的问题。