Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/98.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c UIVIew编辑:是,不隐藏键盘_Objective C_Ios_Ios5_Uitextfield_First Responder - Fatal编程技术网

Objective c UIVIew编辑:是,不隐藏键盘

Objective c UIVIew编辑:是,不隐藏键盘,objective-c,ios,ios5,uitextfield,first-responder,Objective C,Ios,Ios5,Uitextfield,First Responder,我有一个UIVIew,它是一个子视图,它包含几个UITextFields。其中一个文本字段(表示日期)不应使用键盘进行编辑,我使用的是带有日期选择器的PopOver 当到达uicontrolEventEditingDidBegen时,我运行一个方法。此方法调用DateTextField上的resignFirstResponder 如果DateTextField是第一个要编辑的字段,则一切正常,但当另一个textField被编辑时,当然会显示键盘,然后尝试编辑DateField,键盘不会隐藏,一切

我有一个UIVIew,它是一个子视图,它包含几个UITextFields。其中一个文本字段(表示日期)不应使用键盘进行编辑,我使用的是带有日期选择器的PopOver

当到达
uicontrolEventEditingDidBegen
时,我运行一个方法。此方法调用DateTextField上的
resignFirstResponder

如果DateTextField是第一个要编辑的字段,则一切正常,但当另一个textField被编辑时,当然会显示键盘,然后尝试编辑DateField,键盘不会隐藏,一切正常,但键盘会执行任何操作

辞职firstresponder
之前,我尝试调用方法
endEditing:YES
,但它不起作用。我曾尝试在
didEndEditing
文本字段方法上运行
endEditing:YES
resignFirstResponder
,但无法取出键盘

以下是我的方法:

- (void)showDatePopOver:(id)sender{ 
    [self.view endEditing:YES];

    UITextField *textField = (UITextField *)sender;
    [sender resignFirstResponder]; // hide keyboard

    /** POP OVER LINES**/
}

您应该使用
文本字段shouldbeginediting:
委派方法,而不是在
didBeginEditing
中辞职第一响应者:

这将允许编辑除
dateTextField
文本字段以外的所有字段:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
    return (![textField isEqual:dateTextField]);
}
您应该指定视图控制器是一个文本视图委托,就像这样(在接口声明[.h文件]中):

@接口MyViewController:UIViewController

非常感谢,它现在可以工作了。我还必须将事件uicontrolEventEditingDiBegin更改为UIControlEventTouchDownCool,很高兴您修复了它!快乐编码。
@interface MyViewController : UIViewController <UITextFieldDelegate>