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

问题描述 投票:4回答:5

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

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

- (void)textFieldDidBeginEditing:(UITextField *)textField
{
[textField resignFirstResponder];
}
objective-c xcode4.5 uidatepicker
5个回答
12
投票

只需将UIDatePicker设置为UITextField的inputView即可。

当用户使用UItextField点击UIDatePicker时,这将重新键入键盘作为输入视图。

self.dateTextField.inputView = self.datePicker;

4
投票

您可以在UITextField中设置委托,并在NO中返回textFieldShouldBeginEditing


3
投票

试试这个:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
    if (textField.tag == YOU_TEXT_FIELD_TAG) {
        return NO;
    }
    return YES;
}

不要忘记让你的ViewController符合<UITextFieldDelegate>并设置yourTextField.delegate = self;


0
投票

由于我没有看到完整的答案,我也需要,并在这里找到解决方案,我会把我的代码。

简单地将一些“空白”UIView作为输入视图。

目标C.

  UIView *hideKeyboardView = [[UIView alloc]init];
  self.yourTextField.inputView = hideKeyboardView;

迅速

let hideKeyboardView = UIView()
yourTextField.inputView = hideKeyboardView

-2
投票

我已经修好了!我在viewDidLoad上添加了以下代码

    [self.dateField addTarget:self action:@selector(textFieldDidBeginEditing:) 
forControlEvents:UIControlEventEditingDidBegin];

我还在使用

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

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

© www.soinside.com 2019 - 2024. All rights reserved.