【发布时间】:2018-03-04 00:37:07
【问题描述】:
我在 Xcode 中创建了默认的 Cocoa macOS 项目并修改了 AppDelegate 以便它添加一个菜单栏图标并使应用程序窗口全屏显示。取而代之的是窗口正常显示,并且菜单栏图标(应该是 T)在 macOS 状态栏中快速闪烁并消失。如果我注释掉 applicationDidFinishLaunching 中的代码,菜单栏图标就会起作用。如果我删除 awakeFromNib 并且不创建状态项,则应用程序将变为全屏。如果我尝试同时做这两件事,那是行不通的,我真的很想知道我做错了什么。这是我的 AppDelegate.swift 文件的主要部分:
var item = NSStatusBar.system.statusItem(withLength: NSStatusItem.squareLength)
override func awakeFromNib() {
let menu = NSMenu(title: "W")
menu.addItem(NSMenuItem(title: "Quit", action: #selector(AppDelegate.quit), keyEquivalent: ""))
item.title = "T"
item.menu = menu
}
func applicationDidFinishLaunching(_ aNotification: Notification) {
let window = NSApplication.shared.windows.first!
window.setFrame(NSScreen.main!.frame, display: true)
}
【问题讨论】:
-
“菜单栏图标(应该是T)在macOS状态栏中快速闪烁并消失”我在任何地方都没有看到您所说的图标。
-
你的 NSMenu IBOutlet 对象在哪里?
-
我不需要,因为我在 awakeFromNib 中创建了一个新的 NSMenu。