2

我有一个 UITextField 实例secureTextEntry = YES。当该字段首次获得焦点时,任何按键都会清除该字段,这似乎是 iOS 上的标准行为。

据我所知,UIControlEventEditingChanged没有触发。我也尝试过订阅,UIControlEventAllEditingEvents但似乎没有被触发。这给我带来了一个问题,因为我依赖于知道何时编辑该字段来设置enabledUIButton 的属性。

以这种方式清除字段时是否会触发事件?

他们围绕我的问题的上下文可以在这个GitHub 问题中看到。

4

3 回答 3

1

您可以使用 UITextField 的委托:

- (BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    NSString *newText = [textField.text stringByReplacingCharactersInRange:range withString:text];
    [self performSelector:@selector(updateButton) withObject:nil afterDelay:0.1];
    return YES;
}

- (BOOL)textFieldShouldClear:(UITextField *)textField {
    [self performSelector:@selector(updateButton) withObject:nil afterDelay:0.1];
    return YES;
}

- (void) updateButton {
    someButton.enabled = NO;
}
于 2013-09-04T02:32:06.073 回答
0

您好,您可以使用以下方法:

 - (BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
        [self performSelector:@selector(MakeButtonEnabled:) withObject:nil afterDelay:0.2];
        return YES;
    }

- (void) MakeButtonEnabled:(id)sender {
    UIButton *yourButton=(UIBUtton*) sender;
    yourBUtton.enabled = NO;
}

希望这会帮助你。

于 2013-09-04T03:50:37.607 回答
0

如果我为 添加一个操作UIControlEventAllEvents,则当以这种方式清除文本字段时,不会调用该方法,这确认没有触发任何事件。

于 2013-09-04T03:02:35.577 回答