Ios 当清除secureTextEntry=YES的UITextField时是否触发事件?

Ios 当清除secureTextEntry=YES的UITextField时是否触发事件?,ios,uitextfield,uicontrolevents,Ios,Uitextfield,Uicontrolevents,我有一个UITextField实例,其secureTextEntry=YES。当字段第一次获得焦点时,任何按键都将清除该字段,这似乎是iOS上的标准行为 据我所知,UIControlEventEditingChanged未触发。我还尝试订阅了UIControlEventAllEditingEvents,但它似乎没有被触发。这给我带来了一个问题,因为我依赖于知道何时编辑字段来设置UIButton的enabled属性 以这种方式清除字段时是否会触发事件 它们与我的问题相关的上下文可以在这里看到。您可

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

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

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


它们与我的问题相关的上下文可以在这里看到。

您可以使用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;
}

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

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

 - (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;
}

希望这能对你有所帮助。

对我有用。我有一个文本字段。如果我将其设置为安全输入,并为
UIControlEventEditingChanged
事件添加操作,则当我点击一个键并清除文本字段时,将调用我的操作。确认此操作适用于iOS 6.1;问题似乎与我针对的iOS版本有关。请将此作为答案提交。您对哪个版本有问题?我在这里无法谈论的版本。这是接收到的阅读标志,就像一条评论,而不是一个答案。我已经取消删除了它,但是看看你是否可以澄清它,除了一句简单的评论“确认没有触发任何事件”,这很容易被忽略。