由于是基于Status Bar的应用,所以在Storyboard中将页面相关的组件都删除了,保留了Menu相关的组件。
在info.plist中添加名为Application is agent (UIElement)
的key,并将value值设置为YES
。这样App就不会在Dock中显示
在AppDelegate中创建StatusBar按钮并配置对应的action
import Cocoa
@main
class AppDelegate: NSObject, NSApplicationDelegate {
let statusItem = NSStatusBar.system.statusItem(withLength:NSStatusItem.squareLength)
func applicationDidFinishLaunching(_ aNotification: Notification) {
guard let button = self.statusItem.button else { return }
button.image = NSImage(named: NSImage.Name("StatusBarIcon")) // StatusBarIcon is in Assets.xcassets
button.action = #selector(showMenu)
}
func applicationWillTerminate(_ aNotification: Notification) {
// Insert code here to tear down your application
}
@objc func showMenu() {//to be do}
}
监听快捷键 ➡️