如何在Swift中以编程方式启用/禁用Menu-Object

时间:2016-05-29 13:17:04

标签: swift cocoa menuitem

我想在Swift中以编程方式启用Menu-Object。我找到了Apple Developer Libraryhttps://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSMenuItem_Class/#//apple_ref/occ/instp/NSMenuItem/enabled

之类的内容

但是如何使用代码获取Menu-Object的引用并以编程方式设置其状态?

3 个答案:

答案 0 :(得分:1)

您只需以编程方式设置enabled-attribute:menObj.enabled = false

答案 1 :(得分:1)

对于Swift 4 +,Barath's Answer中的某些代码已被弃用。我还认为通过搜索menuitem标题而不是其索引,该代码更具适应性:

let mainMenu = NSApplication.shared.mainMenu!
let subMenu = mainMenu.item(withTitle: "Edit")?.submenu

subMenu?.item(withTitle: "Cut")?.isEnabled = false

此外,只要将isEnabled设置为true,将setAutoenablesItems设置为true或false不会切换菜单项。可以从情节提要中禁用它,也可以通过编程禁用它。

答案 2 :(得分:0)

启用或禁用菜单项而不使用以下代码进行子类化。

let mainMenu = NSApplication.sharedApplication().mainMenu!
                    let appMenu = mainMenu.itemAtIndex(0)!.submenu
                    appMenu?.itemWithTitle("Title")?.enabled = false