我有一个小问题。我的 TableView 中有两个 textFields 设置对象的属性。为了做到这一点,我想强制用户在字符串被实际设置为对象之前在 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;
}
所以我希望在两个文本字段(文本字段 1 和文本字段 2)都填充文本时启用 doneBarButton。但是我希望这样,如果用户删除了他/她刚刚在 doneBarButton 中写入的文本,则一旦 textFields 为空,就会禁用该文本。它不是那样工作的。你有解决方案吗?或者也许有更好的方法来解决它?