iPhone:点击UITextField时是否可以隐藏键盘?

时间:2011-12-26 06:25:07

标签: ios iphone objective-c xcode uitextfield

在我的应用程序中,我必须从UITextField中的值中填充UIPickerView而不是通过键盘。

我有2 UITextFields。 在第一个文本字段中,从键盘获取值 在第二个文本字段中,值来自UIPickerView

所以在点击第二个文本字段时我想隐藏键盘并显示UIPickerView

这里我添加了我做的更好的参考资料

- (void)textFieldDidBeginEditing:(UITextField *)textField
{
      [pickerToolBar setHidden:NO];//shows toolbar
        [pickerTime setHidden:NO];//shows UIPickerView
        [textField resignFirstResponder];
}

但在编写上述代码后,键盘不会消失。

如果您有任何想法,那么请帮助我......

6 个答案:

答案 0 :(得分:2)

尝试UITextfield委托方法。将以下代码放在texfield didBeginEditing方法中。

[texfield resignfirstresonder];

然后文本字段将阻止编辑,键盘将不会出现。 确保将文本字段委托附加到文件所有者。

答案 1 :(得分:1)

当焦点位于UITextField ...

内时,无法隐藏键盘

你必须将UIPicker置于不会隐藏在键盘后面的水平,这样在选择值时它不会成​​为你的障碍..

如果您从UIPicker中选择值,那么为什么需要点击UITextField,所以如果您没有点击UiTextField,键盘将不会显示...

干杯!!!

答案 2 :(得分:1)

尝试将文本字段可编辑属性设置为FALSE或用户交互启用属性为false,并使用打开选择器视图的按钮事件添加一个具有相同文本字段大小的自定义按钮。

答案 3 :(得分:1)

 UITapGestureRecognizer *gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hideKeyboard)];
 [self.view addGestureRecognizer:gestureRecognizer];
 gestureRecognizer.cancelsTouchesInView = NO;


- (void) hideKeyboard 
{
     [textfieldname1 resignFirstResponder];
     [textfieldname2 resignFirstResponder];
}

答案 4 :(得分:1)

这些答案可能有效,但没有人给你最好的答案;点击文本字段时,可以使用uipickerview替换键盘视图:)

UITextField *field = [[UITextField alloc] init];
field.inputView = [[UIPickerView alloc] init];

答案 5 :(得分:0)

如果您基于UIPicker填充UITextField,为什么不简单地禁用用户与UITextField的交互?您仍然可以将数据放在那里,用户将无法更改数据。但是,要强制键盘保持隐藏状态,可以让UITextField在触摸/更改/等时进行检测,然后让第一个响应者辞职。