点击文本字段时不要显示键盘

时间:2013-07-03 08:32:28

标签: objective-c xcode4.5 uidatepicker

我的XIB文件中有UITextFieldUIDatePicker,现在我将UIDatePicker上选择的日期指定为文本字段中文本的值。我做得很好,我现在唯一的问题是,当我点击文本字段时,我希望键盘不显示。 我确定有人知道答案,如果你愿意分享我会很高兴:)谢谢!

顺便说一句。我尝试了这个,但它不起作用..

- (void)textFieldDidBeginEditing:(UITextField *)textField
{
[textField resignFirstResponder];
}

5 个答案:

答案 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];
}

无论如何,谢谢你的帮助!希望这个帖子能帮助别人..