一個 swift 寫的 OS X 的Menu Bar 程序
OS X Menu Bar App
Create a New Project or File ? New ? Project - Choose Application ? Cocoa Application under OS X and click Next
點擊 MainMenu.xib
刪除默認的 window and menu
打開 library 選擇 menu 并且拖拽添加一個 NSMenu
關聯 NSMenu 到 AppDelegate.swift (刪除原來的 var window)
var statusMenu = NSMenu(); ************** let statusItem = NSStatusBar.systemStatusBar().statusItemWithLength(-1) // 顯示名稱 statusItem.title = "Status Bar" statusItem.menu = statusMenu //or 顯示一個圖標 let icon = NSImage(named:"ic_cool") icon?.setTemplate(true) // 支持 Yosemite 的 Dark mode statusItem.image = icon statusItem.menu = statusMenu // or 顯示一個 NSViewController 先聲明 let popover = NSPopover() if let button = statusItem.button{ button.image = NSImage(named: "ic_cool") button.action = Selector("togglePopover:") } popover.contentViewController = MasterViewController(nibName:"MasterViewController",bundle:nil) // 顯示 popover func showPopover(sender: AnyObject?) { if let button = statusItem.button { popover.showRelativeToRect(button.bounds, ofView: button, preferredEdge: NSMinYEdge) } } // 關閉 popover func closePopover(sender: AnyObject?) { popover.performClose(sender) } // 顯示 or 關閉 popover func togglePopover(sender: AnyObject?) { if popover.shown { closePopover(sender) } else { showPopover(sender) } }
如圖 添加 "Application is agent (UIElement)" 并且設置為 YES
然后運行 你將看到 效果如圖
1 顯示菜單
2 顯示一個NSViewController
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!