【发布时间】:2010-10-26 01:58:33
【问题描述】:
如何以编程方式将方法(观察者?)分配给UITextField 对象的didEndOnExit 事件?
这在 IB 中很容易做到,但我不知道如何在代码中做到这一点。
【问题讨论】:
标签: iphone cocoa-touch uitextfield
如何以编程方式将方法(观察者?)分配给UITextField 对象的didEndOnExit 事件?
这在 IB 中很容易做到,但我不知道如何在代码中做到这一点。
【问题讨论】:
标签: iphone cocoa-touch uitextfield
对于任何考虑使用此目标来使另一个文本字段成为FirstResponder 以创建一个“下一步”按钮选项的人,感觉就像您正在通过文本字段“跳动”一样,我建议使用 textFieldShouldReturn 代替这样的代码。让我告诉你它的效果非常好,你会觉得你在骑独角兽:
-(BOOL)textFieldShouldReturn:(UITextField *)textField{
[textField resignFirstResponder];
if([textField isEqual:_textField1]){
[_textField2 becomeFirstResponder];
return NO;
}else if([textField isEqual:_textField2]){
[_textField3 becomeFirstResponder];
return NO;
}
return YES;
}
【讨论】:
在您的视图控制器中实现以下方法:
- (void)textFieldDidEndEditing:(UITextField *)textField{
//do stuff
}
不要忘记在 viewDidLoad 或初始化器中设置委托:
myTextField.delegate = self;
【讨论】:
textFieldDidEndEditing: 在字段完成编辑时被调用,无论是点击键盘上的 Return 键还是点击视图中的其他内容。 didEndOnExit 事件仅在使用键盘上的 Return 键时发生。看起来UITextFieldDelegate 缺少此事件的方法。
我刚刚想通了……
[mytextField addTarget:self
action:@selector(methodToFire:)
forControlEvents:UIControlEventEditingDidEndOnExit];
【讨论】: