捕获 UITextField 运行时的 textFieldDidEndEditing

catch textFieldDidEndEditing of UITextField runtime

我正在使用 objective C 方面库,在下面的情况下,我想在调用 textFieldDidEndEditing 方法时收听所有 UITextfields。

它不工作,我试过 UIButton 它工作但不用于 UITextfield 和 UITextview。

 [UITextField aspect_hookSelector:@selector(textFieldDidEndEditing:) withOptions:AspectPositionAfter usingBlock:^(id<AspectInfo> aspectInfo) {

        if ([[aspectInfo instance] isKindOfClass:[UITextField class]]) {
            UITextField *textView = [aspectInfo instance];

            NSLog(@"***** UITEXTTTTTTTTTTTTTTTTTTT click event called ");

        }
    }

在这种情况下我错过了什么?为什么它不起作用?

不是 100% 确定该库是如何工作的,但看起来您正在尝试监听 textFieldDidEndEditing: 调用。问题是该方法不会在 UITextField 上被调用。它在 UITextFieldDelegate 上被调用。

如果您想在任意数量的文本字段上收听 textFieldDidEndEditing:,您可以使用内置的通知系统并订阅 UITextFieldTextDidEndEditing 通知。

Documentation