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

ma8fv8wu  于 2023-06-30  发布在  其他
关注(0)|答案(6)|浏览(148)

在我的应用程序中,我必须从UIPickerView中存在的值填充UITextField,而不是通过键盘。
我有2UITextFields。在第一个文本字段中,从键盘获取值,在第二个文本字段中,从UIPickerView获取值。
因此,在点击第二个文本字段,我想隐藏键盘,并显示UIPickerView
这就是我所做的:

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

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

55ooxyrt

55ooxyrt1#

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

[texfield resignfirstresonder];

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

vecaoik1

vecaoik12#

当焦点位于UITextField中时,无法隐藏键盘...
您必须将UIPicker放置在不会隐藏在键盘后面的位置,以便在选择值时它不会成为您的障碍。
如果你从UIPicker中选择值,那么为什么你需要点击UITextField,所以如果你没有点击UiTextField,键盘将不会显示...
Cheers!!!

tzxcd3kk

tzxcd3kk3#

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

tzdcorbm

tzdcorbm4#

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

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

emeijp435#

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

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

nbysray56#

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

相关问题