cho*_*ost 5 objective-c uitextfield first-responder ios ios5
我有一个UIVIew,它是一个子视图,它包含几个UITextFields.其中一个文本字段(用于DATE)不应该使用键盘进行编辑,而是使用带有Datepicker的PopOver.
UIControlEventEditingDidBegin到达时我运行一个方法.此方法调用resignFirstResponderDateTextField.
如果DateTextField是第一个要编辑的字段,但是当编辑另一个textField并且当然显示键盘然后尝试编辑DateField时,一切正常,键盘不会隐藏,一切都正常但键盘正在做任何事情.
我试图在endEditing:YES之前调用该方法,resignFirstResponder但它不起作用.我试图运行endEditing:YES,并resignFirstResponder在didEndEditing文本字段的方法,但世界上没有办法让键盘出来.
这是我的方法:
- (void)showDatePopOver:(id)sender{
[self.view endEditing:YES];
UITextField *textField = (UITextField *)sender;
[sender resignFirstResponder]; // hide keyboard
/** POP OVER LINES**/
}
Run Code Online (Sandbox Code Playgroud)
您应该使用textFieldShouldBeginEditing:委托方法而不是在以下位置放弃第一响应者didBeginEditing:
这将允许在除dateTextField文本字段之外的所有字段上进行编辑:
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
return (![textField isEqual:dateTextField]);
}
Run Code Online (Sandbox Code Playgroud)
您应该指定您的视图控制器是一个文本视图委托,如下所示(在接口声明 [.h 文件] 中):
@interface MyViewController : UIViewController <UITextFieldDelegate>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7411 次 |
| 最近记录: |