objective-c – 将enum或#define标记设置为接口构建器中的对象
发布时间:2020-12-14 17:30:03 所属栏目:百科 来源:网络整理
导读:当你构建了很多相同的对象时,一个好的设计伙伴会为标识符设置一个标记,所以: UITextField *object1,*object2;//Initialize it[object1 setDelegate:self];[object2 setDelegate:self];[object1 setTag: 1]; [object2 setTag: 2]; 为了更容易和“美丽”理解
当你构建了很多相同的对象时,一个好的设计伙伴会为标识符设置一个标记,所以:
UITextField *object1,*object2; //Initialize it [object1 setDelegate:self]; [object2 setDelegate:self]; [object1 setTag: 1]; [object2 setTag: 2]; 为了更容易和“美丽”理解代码,您可以创建一个枚举. typedef enum { MyTextField1 = 1,MyTextField2 } allTextField; 所以,你不会只放一个数字,可以用这种方式设置标签: [object1 setTag: MyTextField1]; [object2 setTag: MyTextField2]; 在任何委托功能中,您可以更轻松地对待它 - (BOOL)textFieldShouldClear:(UITextField *)textField { switch(textField.tag) { case MyTextField1: return YES; case MyTextField2: return NO; } } 但是,当您在XCode中构建Interface Builder时,可以在此字段中设置标记: 但如果我设置它,我会收到: 在Interface Builder中无法设置标签而不是数字? 解决方法
在IB中无法使用枚举.因为IB文件是序列化对象.当它们在运行时加载时,它们无法引用枚举的名称.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |