0

在我的 OSX Cocoa 应用程序中,我有一个具有两个 BOOL 属性的数据对象,分别称为“OptionA”和“OptionB”

我需要向用户展示一个 UI 来设置这两个布尔值的值,但出于各种原因(主要是清晰度和美观),我想使用带有 3 个选项的 NSPopupButton - 比如“两个设置”、“仅 A”、“仅B”(“两者都不是”不是一个选项)。

我知道我可以使用带有 NSPopupButton 的目标/操作来检查索引并在代码中设置值,还可以使用 KVO 来捕获我的数据对象中的更改并设置回 NSPopupButton 的索引。

我想这没什么大不了的,但是因为我试图围绕 Cocoa 绑定并将其与其他 UI 元素一起使用,所以我想知道是否有更优雅的方法使用 Cocoa 绑定而不编写此胶水代码?

4

1 回答 1

1

在您的情况下使用绑定不是一个好主意,并且没有“简单”的方法可以做到这一点,因为绑定是一对一的关系。

如果您想使用绑定,您应该在模型中使用 3 个选项创建一个属性:

typedef enum {
    OptionValueA,
    OptionValueB,
    OptionValueBoth,
} OptionValueType;

@interface Model : ...

...

@property (assign) OptionValueType optionValue;

...

@end

并且还可以选择使用值转换器将其绑定到您的按钮。

于 2013-11-08T08:05:24.643 回答