如何在NSComboBox或NSPopUpButton中选择默认选项?

时间:2018-09-24 10:31:43

标签: swift xcode macos

我正在使用Xcode 10和Swift 4.2开发Mac OS App。

对于特定情况,我想为用户提供四个选项,但是对于大多数用户而言,第一个选项就足够了。因此,我希望第一个选项为默认选项,并且当用户想要更改时,他可以从其他三个选项中进行选择。 我正在尝试使用NSComboBox或NSPopUpButton达到同样的效果,但是我很震惊。

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

Combo Box and Pop Up Button

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

如果单击箭头,则下面的图像显示选项列表。

Combo box showing options

问题是ComboBox继承自NSControl,但是当我对其设置操作时,无论我单击“默认”标签还是箭头,该方法调用均不起作用,并且PopUpButton列出了这些选项。

主要目的是,用户只需单击一次鼠标即可选择默认选项,而只需单击两次即可更改选项。 如何使用ComboBox,PopUpButton或任何其他对象来实现它?

1 个答案:

答案 0 :(得分:0)

两个选项:

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

  • 如果立即执行该选项,请使用“可可绑定”并将selectedIndexselectedObject绑定到适当的dynamic属性。在viewDidLoadviewWillAppear中设置默认值。添加didSet属性观察器并执行该选项。

NSCombobox和NSPopUpButton的工作原理相似。