gpt4 book ai didi

iphone - 隐藏带有多个文本字段的 IOS 键盘

转载 作者:行者123 更新时间:2023-11-29 04:32:59 25 4
gpt4 key购买 nike

我有 2 个并排的文本字段,countryCodeTextField 和 cellphoneTextField

在国家代码文本字段上。我有一个发生在 Edit Did Begin 上的 selectCountry 操作在国家代码文本字段上


- (IBAction)selectCountry:(id)sender {
countryCodeTextField.delegate = self;
[countryCodeTextField resignFirstResponder];

  • 请注意,self 实现了 <UITextFieldDelegate> .

问题是当用户点击手机时,如果他点击countryCodeTextField,键盘就会显示,键盘永远不会消失。

如果该人首先单击国家/地区代码,则键盘永远不会出现(这就是我想要的)。

为什么当用户先单击 cellphoneTextField,然后单击 CountryCodeTextField 时,键盘没有隐藏?

最佳答案

如果您不希望用户能够编辑特定的 UITextField,请将其设置为不启用。

 UITextField *textField = ... // Allocated somehow
textfield.enabled = NO

或者只需选中 Interface Builder 中启用的复选框。然后文本字段仍然存在,您将能够通过配置文本来更新它。但正如评论中提到的,用户希望 UITextFields 是可编辑的。

另外,为什么要在 IBAction 回调中设置委托(delegate)?我认为您最好在 Interface Builder 中或在代码中创建 UITextField 时执行此操作。

编辑:

好的 - 所以您希望用户能够选择该框,然后调出一个自定义 subview ,他们可以从中选择填充该框的内容。

因此,在创建 UITextField 委托(delegate)时对其进行设置(如上所述),并通过 UITextFieldDelegate 协议(protocol)实现以下内容:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
return NO;
}

返回NO。请注意,如果您对两个 UITextField 使用相同的委托(delegate),则需要使此方法对另一个字段返回 YES。例如,类似:

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

希望这应该停止显示键盘 - 现在你必须弄清楚如何触发你自己的 subview ,我建议通过 IBAction (修饰或其他东西)来完成。您必须在这里测试各种东西,但请记住您有点破坏了 UITextField 的要点,也许它会起作用,也许不会,也许它会在下一次 iOS 升级中中断。

关于iphone - 隐藏带有多个文本字段的 IOS 键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11442605/

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