在我的OSX Cocoa应用程序中,我有一个具有两个BOOL属性的数据对象,称之为“OptionA”和“OptionB”
我需要向用户提供一个UI来设置这两个布尔值,但出于各种原因(主要是清晰度和美学)我想使用NSPopupButton有3个选项 - 比如“both set”,“Only A” ,“只有B”(“不”不是一种选择)。
我知道我可以使用NSPopupButton的目标/操作来检查索引并在代码中设置值,并使用KVO来捕获我的数据对象中的更改并设置NSPopupButton的索引。
我想这不是什么大问题,但是因为我试图围绕Cocoa Bindings并将其与其他UI元素一起使用,我想知道是否有更优雅的方法使用Cocoa Bindings而不编写这些胶水代码?
答案 0 :(得分:1)
在你的情况下使用绑定并不是一个好主意,并且没有“简单”的方法来实现它,因为绑定是一对一的关系。
如果您想使用绑定,您应该在模型中使用3个选项创建一个属性:
typedef enum {
OptionValueA,
OptionValueB,
OptionValueBoth,
} OptionValueType;
@interface Model : ...
...
@property (assign) OptionValueType optionValue;
...
@end
还可以选择使用值转换器将其绑定到您的按钮。