【问题标题】:iphone: uitextfield, multiple textfields with the same delegate?iphone:uitextfield,具有相同委托的多个文本字段?
【发布时间】:2010-09-19 20:23:07
【问题描述】:
我的应用程序中有两个不同的文本字段,我将它们的 .delegate 属性设置为:self。
现在我从 uitextfielddelegate 协议实现了不同的方法,但我希望能够单独控制两个文本字段。例如,我希望第一个文本字段在编辑开始时比第二个文本字段做一些不同的事情......是这个问题的唯一解决方案是设置分配一个不同的委托,或者有没有办法在两个文本字段都有的情况下做到这一点分配给他们的同一个代表?
我希望我的问题是可以理解的,我试着用它来解释我能做到的最好的方式......
提前致谢!
【问题讨论】:
标签:
iphone
delegates
uitextfield
【解决方案1】:
在初始化时在文本字段上设置tag,然后检查传递给委托方法的tag 的UITextField 对象,然后您将能够区分两个文本字段:
#define FIELD_ONE_TAG 1
#define FIELD_TWO_TAG 2
UITextField *textFieldOne = ...
textFieldOne.tag = FIELD_ONE_TAG;
...
UITextField *textFieldTwo = ...
textFieldTwo.tag = FIELD_TWO_TAG;
- (void)textFieldDidBeginEditing:(UITextField *)textField {
if(textField.tag == FIELD_ONE_TAG) { //field one
} else {//field two
}
}
【解决方案2】:
UITextField *textFieldOne=.....
UITextField *textFieldTwo=....
- (void)textFieldDidBeginEditing:(UITextField *)textField {
if(textField == textFieldOne)
{ // field one code
}else{
//field two code
}
}
有两个插入文本视图的引用,你可以在委托方法中比较它们。标签不需要太多