【问题标题】:Setting a default selection for an NSPopupButton?为 NSPopupButton 设置默认选择?
【发布时间】:2010-06-04 20:27:14
【问题描述】:

是否可以在 NSPopupButton 上设置默认选择?我有一个允许用户选择他们想要设置的服务器类型,但由于 NSPopupButton 总是显示第一项,如果这是他们想要的类型,他们可能会忽略它。但是,即使正在显示该项目,调用 -selectedItem 也会返回 (null)。如果用户先从菜单中选择一个项目,一切正常。

Button 的 content 和 contentValues 绑定到同一个 Array Controller,而后者又绑定到 NSDictionary 的 keys 属性。我尝试将 selectedIndex 绑定到控制器中的变量并在代码中更新它,但它没有效果。 (我可能只是绑定错了...)如何默认选择第一项?

提前致谢!
SphereCat1

【问题讨论】:

    标签: cocoa default cocoa-bindings nspopupbutton


    【解决方案1】:

    在使用绑定时,您不需要也不应该直接从视图中获取任何模型信息——无论是模型本身还是选择状态。与拥有模型和所选索引的控制器对话。

    请注意,“索引”对 NSDictionary 没有任何意义,keys 不是 NSDictionary 的属性。 (事实上​​,如果你得到一个异常,我不会感到惊讶,因为你的字典中没有键“keys”的对象。)它是一种方法,而不是访问器类型,所以当你 可以使用键值编码向字典询问该方法的值,你不应该。

    你应该做的是让model objects 代表服务器类型,并保存一个数组,并将数组控制器的内容绑定到值为该数组的属性。将弹出按钮的 contentValues 绑定到模型对象的 name 属性,该属性应包含每种服务器类型的本地化名称。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-19
      • 1970-01-01
      • 2020-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多