我正在构建一个自定义键盘,其中大约有 50 个UIButton
键。我想为每个键放置一些分组信息,例如数字、字母、光标等。
首先想到的是tag
字段(字母100,数字200,......等等)
另一种选择是通过具有关联引用的类别。
但是,这两种方法对 Interface Builder 都不是很友好。还有其他选择吗?
我正在构建一个自定义键盘,其中大约有 50 个UIButton
键。我想为每个键放置一些分组信息,例如数字、字母、光标等。
首先想到的是tag
字段(字母100,数字200,......等等)
另一种选择是通过具有关联引用的类别。
但是,这两种方法对 Interface Builder 都不是很友好。还有其他选择吗?
你写了
我想为每个键放置一些分组信息,例如数字、字母、光标等。
为什么不使用IBOutletCollection
s?
您可以为每个“数字、字母、光标”声明数组:
@property (nonatomic) IBOutletCollection(UIButton) NSArray *numberButtons;
@property (nonatomic) IBOutletCollection(UIButton) NSArray *letterButtons;
@property (nonatomic) IBOutletCollection(UIButton) NSArray *cursorButtons;
并轻松地将它们连接到界面生成器中:
可能最干净的方法是使用它并处理同一子类/类别中的所有内容User Defined Runtime Attributes
对于上面的示例,您应该至少有一种方法:
-(void) setLocalizedKey:(NSString *) key;
//(NSString *) localizedKey; this is optional
或财产:
@property(nonatomic, strong) NSString * localizedKey;
如果您喜欢关联引用(或者您不需要存储或无权访问类本身)@synthesize
,请在您的子类或类别中声明和实现(或)。UIButton
在上面的示例中, 的值key
将HOW_IT_WORKS
针对该特定实例。这是我通常处理本地化的方式,但也应该服务于您的目的。
也许我误解了您的问题,但该tag
属性绝对可以UIButtons
通过 XCode/Interface Builder 设置。