【问题标题】:Binding NSPopupButton index to multiple boolean values将 NSPopupButton 索引绑定到多个布尔值
【发布时间】:2013-11-07 14:41:57
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: objective-c macos cocoa cocoa-bindings


    【解决方案1】:

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

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

    typedef enum {
        OptionValueA,
        OptionValueB,
        OptionValueBoth,
    } OptionValueType;
    
    @interface Model : ...
    
    ...
    
    @property (assign) OptionValueType optionValue;
    
    ...
    
    @end
    

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

    【讨论】:

      猜你喜欢
      • 2018-01-29
      • 1970-01-01
      • 1970-01-01
      • 2014-03-26
      • 1970-01-01
      • 2023-03-18
      • 1970-01-01
      • 1970-01-01
      • 2013-08-30
      相关资源
      最近更新 更多