代码之家  ›  专栏  ›  技术社区  ›  imthath

如何在nscombobox或nspopupbutton中选择默认选项?

  •  1
  • imthath  · 技术社区  · 6 年前

    我正在开发一个使用xcode 10和swift 4.2的mac os应用程序。

    对于特定的场景,我想为用户提供四个选项,但对于大多数用户来说,第一个选项就足够了。所以我希望第一个选项是默认的,当用户想要更改时,他可以从其他三个选项中进行选择。 我试图用nscombobox或nspopupbutton来实现同样的效果,但我被震撼了。

    在下图中,第一个是组合框,下一个是弹出按钮。

    Combo Box and Pop Up Button

    如果用户单击“default”,我需要调用一个方法。如果用户单击箭头标记,我需要显示选项列表,用户将选择一个选项,然后我必须调用相同的方法。

    下面是显示选项列表的图像(如果单击箭头)。

    Combo box showing options

    问题是组合框继承自nscontrol,但是当我设置action时,方法调用不起作用,popubutton列出了选项,而不管我是单击“default”标签还是箭头。

    主要目标是,用户只需单击一次鼠标即可选择默认选项,单击两次即可更改选项。 如何使用组合框、弹出按钮或任何其他对象来实现它?

    1 回复  |  直到 6 年前
        1
  •  0
  •   vadian    6 年前

    两种选择:

    • 如果未立即执行该选项,请创建一个属性并将其设置为 viewDidLoad viewWillAppear . 在组合框/弹出按钮中设置相应的索引。观察 selectionDidChangeNotification . 如果用户更改了选项,请在通知操作中设置属性。

    • 如果立即执行该选项,请使用cocoa绑定和bind selectedIndex selectedObject 合适的 dynamic 财产。在中设置默认值 视图加载 将出现视图 . 添加 didSet 属性观察器并执行选项。

    nscombobox和nspopupbutton的工作原理相似。