在几个弹出窗口和故事板上共享一个弹出按钮菜单?

时间:2016-04-01 16:27:16

标签: swift macos cocoa

我在其中一个表单的弹出按钮菜单中输入了一个字符串条目列表。同样的弹出窗口在另外两个窗口中,在不同的故事板上。列表中的项目也在代码中的数组中。作为参考,这是数组:

static let selections = ["NTSC", "ATSC", "AM", "FM", "Other"]

有什么方法可以分享所有这些吗?

理想情况下,我会使用绑定,并绑定到数组。但是,菜单中有分隔符,我认为我不能在数组中定义它?

如果不这样做,有没有办法可以将菜单放在某个故事板的某个地方,然后从各个屏幕中引用它?

如果失败了,我可以轻松地将菜单从一个地方复制到另一个地方吗?我的尝试导致在故事板中自己创建一个新菜单,我似乎无法将其粘贴到弹出按钮本身。

1 个答案:

答案 0 :(得分:0)

NSPopupButton内部包含一个NSMenu对象,该对象为其提供选择项。您可以使用类方法构建一个类,该方法使用您想要的NSMenuItem生成NSMenu,然后设置弹出按钮'生成NSMenu对象的menu属性。

我不认为您可以在故事板中构建此NSMenu,并让它可以共享;我认为您必须在代码中创建NSMenu,然后在viewDidLoad方法中手动连接它。但是,您可以将NSPopUpButton对象放在故事板中,然后将它们连接到控制器;您只需稍后为他们手动设置menu