我正在使用Xcode 10和Swift 4.2开发Mac OS App。
对于特定情况,我想为用户提供四个选项,但是对于大多数用户而言,第一个选项就足够了。因此,我希望第一个选项为默认选项,并且当用户想要更改时,他可以从其他三个选项中进行选择。 我正在尝试使用NSComboBox或NSPopUpButton达到同样的效果,但是我很震惊。
在下图中,第一个是组合框,第二个是弹出按钮。
如果用户单击“默认”,则需要调用一个方法。如果用户单击箭头标记,则需要显示选项列表,用户将选择一个选项,然后必须调用相同的方法。
如果单击箭头,则下面的图像显示选项列表。
问题是ComboBox继承自NSControl,但是当我对其设置操作时,无论我单击“默认”标签还是箭头,该方法调用均不起作用,并且PopUpButton列出了这些选项。
主要目的是,用户只需单击一次鼠标即可选择默认选项,而只需单击两次即可更改选项。 如何使用ComboBox,PopUpButton或任何其他对象来实现它?
答案 0 :(得分:0)
两个选项:
如果未执行该选项,请立即创建一个属性并将其设置为viewDidLoad
或viewWillAppear
中的默认选项。在组合框/弹出按钮中设置相应的索引。观察selectionDidChangeNotification
。如果用户更改选项,请在通知操作中设置属性。
如果立即执行该选项,请使用“可可绑定”并将selectedIndex
或selectedObject
绑定到适当的dynamic
属性。在viewDidLoad
或viewWillAppear
中设置默认值。添加didSet
属性观察器并执行该选项。
NSCombobox和NSPopUpButton的工作原理相似。