我的XIB文件中有UITextField
和UIDatePicker
,现在我将UIDatePicker
上选择的日期指定为文本字段中文本的值。我做得很好,我现在唯一的问题是,当我点击文本字段时,我希望键盘不显示。
我确定有人知道答案,如果你愿意分享我会很高兴:)谢谢!
顺便说一句。我尝试了这个,但它不起作用..
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
[textField resignFirstResponder];
}
答案 0 :(得分:12)
只需将UIDatePicker
设置为UITextField
的输入视图。
当用户使用UItextField
点击UIDatePicker
时,这会将键盘替换为输入视图。
self.dateTextField.inputView = self.datePicker;
答案 1 :(得分:4)
您可以在UITextField
中设置委托,并在NO
中返回textFieldShouldBeginEditing
。
答案 2 :(得分:3)
试试这个:
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
if (textField.tag == YOU_TEXT_FIELD_TAG) {
return NO;
}
return YES;
}
不要忘记让你的ViewController符合<UITextFieldDelegate>
并设置yourTextField.delegate = self;
答案 3 :(得分:0)
由于我没有看到完整的答案,因此我也需要这样做,并在此处给出一些答案以寻求解决方案,在此我将放置代码。
只需将一些“空白” UIView用作输入视图。
客观C
UIView *hideKeyboardView = [[UIView alloc]init];
self.yourTextField.inputView = hideKeyboardView;
迅速
let hideKeyboardView = UIView()
yourTextField.inputView = hideKeyboardView
答案 4 :(得分:-2)
我已经修好了!我在viewDidLoad
[self.dateField addTarget:self action:@selector(textFieldDidBeginEditing:)
forControlEvents:UIControlEventEditingDidBegin];
我仍然使用
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
[textField resignFirstResponder];
}
无论如何,谢谢你的帮助!希望这个帖子能帮助别人..