gpt4 book ai didi

objective-c - UIVIew endEditing :YES doesnt hide the keyboard

转载 作者:可可西里 更新时间:2023-11-01 04:47:58 25 4
gpt4 key购买 nike

我有一个 UIVIew,它是一个 subview ,它包含几个 UITextField。这些文本字段之一(用于 DATE)不应使用键盘进行编辑,而是我使用 PopOver 和内部的 Datepicker。

我在到达 UIControlEventEditingDidBegin 时运行一个方法。此方法调用 DateTextField 上的 resignFirstResponder

如果 DateTextField 是第一个要编辑的字段,一切正常,但是当另一个 textField 被编辑并且当然显示键盘然后尝试编辑 DateField 时,键盘不会隐藏并且一切正常但使用键盘做任何事情。

我尝试在 resignFirstResponder 之前调用方法 endEditing:YES 但它不起作用。我已尝试在 didEndEditing 文本字段方法上运行 endEditing:YESresignFirstResponder 但无法取出该键盘。

这是我的方法:

- (void)showDatePopOver:(id)sender{ 
[self.view endEditing:YES];

UITextField *textField = (UITextField *)sender;
[sender resignFirstResponder]; // hide keyboard

/** POP OVER LINES**/
}

最佳答案

您应该使用 textFieldShouldBeginEditing: 委托(delegate)方法,而不是在 didBeginEditing 中退出第一响应者:

这将允许编辑除 dateTextField 文本字段之外的所有内容:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
return (![textField isEqual:dateTextField]);
}

你应该像这样指定你的 View Controller 是一个 TextView 委托(delegate)(在接口(interface)声明 [.h 文件] 中):

@interface MyViewController : UIViewController <UITextFieldDelegate>

关于objective-c - UIVIew endEditing :YES doesnt hide the keyboard,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12430397/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com