检查哪个UITextField正在触发textFieldShouldBeginEditing调用

时间:2010-07-19 20:06:43

标签: iphone cocoa-touch

确定哪个UITextField触发方法-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField(或任何其他UITextFieldDelegate方法)的最佳方法是什么?我以前见过这样的代码:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {

    if (textField == textFieldCode) {
        return YES;
    }
    return NO;
}

但这只有在我班上有textFieldCode作为ivar的情况下才有效,在这种情况下,我只是初始化了几个UITextField并将它们放在一张桌子上,所以我不喜欢在课堂上没有引用它们。

我在想我可以使用hash function并在类中的某个地方存储每个textField的哈希值,然后将textField的哈希值与方法调用中所需的哈希值进行比较,但是看起来像是一种黑客攻击。

2 个答案:

答案 0 :(得分:3)

由于您只有几个字段,因此您可以为每个文本字段的标记属性指定唯一编号以启用标识。

答案 1 :(得分:0)

您可以拥有一个包含所有文本字段的iVar NSArray。 然后只需枚举它以找出发送消息的文本字段