一個 swift 寫的 OS X 的Menu Bar 程序

jopen 9年前發布 | 30K 次閱讀 Swift Apple Swift開發

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

項目主頁:http://www.baiduhome.net/lib/view/home/1438150080113

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!