如何识别或知道方法中引用了哪个控件?

时间:2010-05-21 08:26:40

标签: iphone

在我的具体情况下,如何识别或知道shouldChangeCharactersInRange方法中引用了哪个UITextField?

我知道参数(UITextField *)textField包含被引用的对象,但是如何比较以识别它是哪一个?

2 个答案:

答案 0 :(得分:2)

  1. 如果您使用IB创建界面,则可以在控制器中为每个UI元素创建IBOutlet,然后在IB中连接,然后将textField参数与它们进行比较:

    //header
    IBOutlet UITextField* nameField;
    IBOutlet UITextField* addressField;
    
    //Implementation
    ...
    if (textField == nameField){
    }
    if (textField == addressField){
    }
    
  2. 2在IB中,您还可以为每个UITextField分配一个唯一的标记值(可用于每个UIView子类)并比较标记值:

        #define nameTag 10
        #define addressTag 11
    
        //Implementation
        ...
        if (textField.tag == nameTag){
        }
        if (textField.tag == addressTag){
        }
    

答案 1 :(得分:0)

最优雅的解决方案是使用界面构建器/故事板中的标签,为每个文本字段分配标签。

然后在代码中使用switch(textfield.tag)大小写,与放入大量if语句相比,代码看起来更清晰