我有一个模态显示的视图,其中包含3个标签。
第三个标签不应该是可编辑的,并且在点击它时应显示UIDatePicker,如果显示则隐藏键盘。
所以我做到了:
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
if (textField == _birthdateTextField) {
_birthdateDatePicker.hidden = NO;
if ([_firstnameTextField isFirstResponder]) {
NSLog(@"first");
[_firstnameTextField resignFirstResponder];
} else if ([_lastnameTextField isFirstResponder]) {
NSLog(@"last");
[_lastnameTextField resignFirstResponder];
}
return NO;
}
_birthdateDatePicker.hidden = YES;
return YES;
}
我可以清楚地看到我的日志信息(“第一个”或“最后一个”,取决于最后一个聚焦文本字段),但键盘仍然显示。
有人在弄清楚这里的问题是什么?
答案 0 :(得分:4)
如果您将模态视图显示为UIModalPresentationFormSheet,则答案如下: Modal Dialog Does Not Dismiss Keyboard
答案 1 :(得分:1)
您可以在某个地方执行此操作,而不必在覆盖textFieldShouldBeginEditing
的情况下完成此项复杂工作,例如viewDidLoad
:
_birthdateTextField.inputView = _birthdateDatePicker;
当您去编辑生日日期文本字段时,日期选择器将替换键盘