gpt4 book ai didi

ios - 如何在同一个 ViewController 中禁用特定 UITextField 的键盘?

转载 作者:行者123 更新时间:2023-11-29 03:05:43 25 4
gpt4 key购买 nike

我在 ViewController 中有四个文本字段,并且想要禁用其中两个文本字段(textField1 和 textField2)的键盘。

在将文本字段分配为 viewDidLoad 中的委托(delegate)后,我尝试实现以下内容

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField) {
if ([self.textField1 isTouchInside] || [self.textField2 isTouchInside] {
return NO;
} else {
return YES;
}
}

但是,这会完全禁用 ViewController 的键盘,因此在尝试编辑 textField3 和 textField4 时它不会出现。我该如何解决这个问题?

例如,有没有办法在文本字段上编辑结束后再次刷新运行textFieldShouldBeginEditing方法?

此外,我知道我可以创建一个标签来完成类似的事情,但我更喜欢在我的情况下使用文本字段。

编辑:所以我遗漏了一个大细节。当按下 textField1 和 2 时,我会触发 IBaction。但是,Lootsch 的回答给了我一个想法。

在 textField1/2Pressed IB 操作中,我运行了 textfield.enable:NO 方法,然后当我触发向文本字段提交数据的第二个操作时重新启用它们,如下所示

- (IBAction)textField1Pressed:(id)sender {
self.textField.Enabled = NO;
}

- (IBAction)submitToTextField1:(id)sender {
self.textField.text = @"blah blah";
self.textField.Enabled = YES;
}

尽管如此,这需要有两个输入和退出操作,但这对我有用。另外,我不必使用此解决方案操作 textFieldShouldBeginEditing 方法。

最佳答案

您应该禁用这两个文本字段(在代码中或通过 IB)或者您可以禁用用户交互(不同的外观,相同的功能):

textField3.enabled = NO;
textField4.enabled = NO;

或者:

textField3.userInteractionEnabled = NO;
textField3.userInteractionEnabled = NO;

第二种方法不会更改 UITextFields 的外观,而第一种方法将指示这些 TextFields 已禁用。

关于ios - 如何在同一个 ViewController 中禁用特定 UITextField 的键盘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22795454/

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