gpt4 book ai didi

ios - UITextFieldDelegate,检查 textFields 中是否有文本

转载 作者:行者123 更新时间:2023-11-29 10:53:49 24 4
gpt4 key购买 nike

我有个小问题。我的 TableView 中有两个文本字段,用于设置对象的属性。为此,我想强制用户在将字符串实际设置为对象之前在 textField 中写一些东西。所以基本上是一个简单的 ([textField.text length] > 0) 东西。但我希望用户必须在两个文本字段中都写入字符串才能最终启用“完成”按钮。我之前解决了这个问题,但只有一个文本字段具有以下 UITextFieldDelegate 方法。

- (BOOL)textField:(UITextField *)theTextField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSString *newText = [theTextField.text stringByReplacingCharactersInRange:range withString:string];
self.doneBarButton.enabled = ([newText length] > 0);
return YES;
}

我对新问题的解决方案,所以现在有两个文本字段是这个:

- (BOOL)textField:(UITextField *)theTextField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSString *newText = [theTextField.text stringByReplacingCharactersInRange:range withString:string];

if ([theTextField.placeholder isEqualToString:@"textField1"]) {
if ([theTextField.text length] > 0) {
enabledVokabel = YES;
} else {
enabledVokabel = NO;
}
}
if ([theTextField.placeholder isEqualToString:@"textField2"]) {
if ([theTextField.text length] > 0) {
enabledUebersetung = YES;
} else {
enabledUebersetung = NO;
}
}

self.doneBarButton.enabled = (enabledVokabel && enabledUebersetung);
return YES;
}

所以我希望在两个文本字段(textField1 和 textField2)都填充有文本时启用 doneBarButton。但是我希望这样,如果用户删除了他/她刚刚在 doneBarButton 中写的文本,那么一旦文本字段为空,就会被禁用。它不是那样工作的。你有解决方案吗?或者可能有更好的解决方法?

最佳答案

要么将 interfacebuilder 中更改的值连接到 View 中任何类中的 IBAction 方法。或者您可以在代码中使用:

[textField addTarget:self 
action:@selector(myIBActionMethod:)
forControlEvents:UIControlEventEditingChanged];

并检查输入的长度。

您可以将两个文本字段连接到相同的方法,并在每次调用时检查两个文本字段的长度,如果您对它们都有 IBOutlets。

关于ios - UITextFieldDelegate,检查 textFields 中是否有文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19344850/

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