gpt4 book ai didi

objective-c - 将枚举或#define 标记设置为界面生成器中的对象

转载 作者:搜寻专家 更新时间:2023-10-30 19:44:50 24 4
gpt4 key购买 nike

当你建立很多平等的对象是一个很好的设计伙伴设置一个标签标识符,所以:

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];

比在任何委托(delegate)函数中你可以更容易地对待它

- (BOOL)textFieldShouldClear:(UITextField *)textField {
switch(textField.tag) {
case MyTextField1: return YES;
case MyTextField2: return NO;
}
}

但是,当您将在 XCode 中构建 Interface Builder 时,您可以在此字段中设置标签:

enter image description here

但是如果我设置它,我会收到:

enter image description here

除了在 Interface Builder 中设置一个数字,没有办法设置标签吗?

最佳答案

无法在 IB 中使用枚举。因为 IB 文件是序列化的对象。当它们在运行时加载时,它们无法引用枚举的名称。

关于objective-c - 将枚举或#define 标记设置为界面生成器中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8415472/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com