textFieldShouldReturn和shouldChangeCharactersInRange

时间:2016-01-13 03:39:11

标签: ios uitextfielddelegate

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

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

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

2 个答案:

答案 0 :(得分:1)

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

例如:

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

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

答案 1 :(得分:0)

我认为你可以将其子类化为同一个shouldChangeCharactersInRange,但是如果你现在想坚持使用你的解决方案,我想你可以给textfield一个标签,然后检查textFieldShouldReturn中的标签在该文件中并给他们自己的功能