我无法调用 textFieldShouldEndEditing。我已经在界面生成器中重新创建了链接并尝试过,但似乎没有任何效果。知道为什么不调用它吗?
编辑
-(BOOL)textFieldShouldEndEditing:(UITextField *)textField
{
NSLog(@"Done editing...");
[textField resignFirstResponder];
return YES;
}
我无法调用 textFieldShouldEndEditing。我已经在界面生成器中重新创建了链接并尝试过,但似乎没有任何效果。知道为什么不调用它吗?
编辑
-(BOOL)textFieldShouldEndEditing:(UITextField *)textField
{
NSLog(@"Done editing...");
[textField resignFirstResponder];
return YES;
}
你需要代言人!
尝试在你的 .h 中添加这个<UITextFieldDelegate>
在你的 .m
_yourTextField.delegate = self
.
有用。
试试这个代码。
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
[Self.view EndEditing:YES];
return YES;
}
也使用 _myTextField.delegate = self
; 在你的 ViewDidLoad
在您的 .h 文件中,<UITextFieldDelegate>
在您的班级名称之后添加。
你可以试试这段代码...
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
return YES;
}
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField
{
return YES;
}
我希望这能帮到您。
快乐编码。
您应该将 textField 的委托设置为您实现的类textFieldShouldEndEditing:
。
你可以通过两种方式做到这一点:
首先,在 InterfaceBuilder 中,从组件中按住 ctrl 并拖动到 viewController,然后选择“delegate”。
或者,在viewDidLoad
类中,添加以下行:
_myTextField.delegate = self;
对于这两种方式,在你的 .h 文件中,在<UITextFieldDelegate>
你的类名之后添加。
只是为了好玩,如果你想真正花哨,你可以让键盘在用户触摸屏幕上的任何地方时消失。在 ViewDidLoad 中添加此代码,它将起作用。
也阅读这个 Stackoverflow 链接 -关闭 iphone 键盘
- (void)viewDidLoad
{
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]
initWithTarget:self
action:@selector(dismissKeyboard)];
[self.view addGestureRecognizer:tap];
}
-(void)dismissKeyboard
{
//here text1 is your custom UITextField
[text1 resignFirstResponder];
}