textFieldShouldReturn 和 shouldChangeCharactersInRange

textFieldShouldReturn and shouldChangeCharactersInRange

是否可以在两个不同的位置设置 textFieldShouldReturnshouldChangeCharactersInRange

目前我在一个单独的文件中使用 shouldChangeCharactersInRange,因为我的许多文件都使用它 - 它的功能是只有数字会出现在文本字段中。

但是我希望每个单独的文件都有自己唯一的 textFieldShouldReturn,因为文本字段 ID 是唯一的。我知道每个文本字段只能容纳一个代表,有什么建议的方法吗?

由于这两种方法来自同一协议,因此您必须将它们放在同一文件中。但是,可以编写 shouldChangeCharactersInRange: 的实现来调用一些执行实际工作的常用方法。

例如:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    return [someHelper textField:textField shouldChangeCharactersInRange:range replacementString:string];
}

其中 someHelper 是实现共享实现的 class。

我认为你可以子类化给它相同的 shouldChangeCharactersInRange,但如果你现在想坚持你的解决方案,我认为你可以给文本字段一个标签,然后检查 [=11] 中的标签=] 在该文件中并给它们自己的函数