在我的具体情况下,如何识别或知道shouldChangeCharactersInRange方法中引用了哪个UITextField?
我知道参数(UITextField *)textField包含被引用的对象,但是如何比较以识别它是哪一个?
答案 0 :(得分:2)
如果您使用IB创建界面,则可以在控制器中为每个UI元素创建IBOutlet
,然后在IB中连接,然后将textField
参数与它们进行比较:
//header
IBOutlet UITextField* nameField;
IBOutlet UITextField* addressField;
//Implementation
...
if (textField == nameField){
}
if (textField == addressField){
}
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语句相比,代码看起来更清晰