小编FaH*_*aHa的帖子

带有故事板的菜单栏 - validateMenuItem 不会被调用

我正在尝试使用故事板设置菜单栏应用程序,但我的validateMenuItem方法没有被调用。

我会试着解释我做了什么。首先,我在我的应用程序场景中拖动了一个菜单项。然后是我的 MenuController 的一个对象。创建了一个 MenuController (MenuController.swift) 并用代码填充它。回到我的故事板,我将 Menu 委托设置为 MenuController,将 MenuController Outlet 设置为 Menu。(我不完全确定我是否正确设置了代表。)

当我启动应用程序时,菜单图标出现,第一个项目标题设置为测试。但是当我点击图标时,该validateMenuItem方法不会被调用。

菜单控制器.swift

import Cocoa
class MenuController: NSObject {

    var statusItem = NSStatusBar.systemStatusBar().statusItemWithLength(-1)

    @IBOutlet weak var statusMenu: NSMenu!
    @IBOutlet weak var item1: NSMenuItem!

    override func awakeFromNib() {
        print("awakeFromNib")

        self.item1.title = "Test"

        let icon = NSImage(named: "menubarIcon")
        statusItem.image = icon
        statusItem.menu = statusMenu
    }

    override func validateMenuItem(menuItem: NSMenuItem) -> Bool {
        print("validateMenuItem")
        return true
    }
}
Run Code Online (Sandbox Code Playgroud)

故事板菜单代表 故事板菜单代表
(来源:picr.de

故事板 MenuController 委托 故事板 MenuController 委托
(来源: …

macos delegates menubar swift

2
推荐指数
1
解决办法
1497
查看次数

标签 统计

delegates ×1

macos ×1

menubar ×1

swift ×1