項目開發是最有效果的學習途徑(沒有之一),現在我們從開發一個小的狀態欄上的App入門,通過逐步實現功能,來漸漸上手熟悉Mac OSX上的基礎控件使用方法。通過本練習,希望能夠幫助有興趣的同學掌握如下基礎知識:
* NSStatusBar 控件的使用
* NSPopover 的基本使用
* (鼠標)事件監聽方法
* 結束App的方法?
好了,開始動手!
1.1 創建演示項目:StatusBarDemoApp
在Mac OSX系統中,屏幕的右上角就是我們說的狀態欄(NSStatusBar),一直是常駐應用的必爭之地。我們只需要創建一個item ,然后將創建好的item加載到狀態即可,我們只需要使用NSStatusBar的statusItemWithLength:方法就可以了(這個方法會創建好一個NSStatusItem,并且將它自動的添加到狀態欄中)。
1.2 選中ViewController.m文件,添加代碼
1.3 添加圖片資源
如果沒有出錯,運行項目,你應該看到一個空的窗口,而且在屏幕的右上角已經出現了我們應用的常駐標志^_^,是不是感覺很容易啊~
這時你點擊狀態欄上的圖標,它沒有任何反應,因為我們還沒有給它添加事件響應的方法。我們希望點擊它能夠彈出一個視圖,顯示它的內容或者功能,下面我們就來接著實現它。
NSPopover 提供了在屏幕內容視圖上顯示額外信息內容的一種方式(其實這個類似于在iPad開發中是常見的UIPopoverPresentationController),它的定位相對與現有內容。
在ViewController中添加popover屬性,并在viewDidLoad中進行初始化和配置。
1.4 現在ViewController.m實現代碼:
如果這時運行項目工行,我們嘗試點擊狀態欄圖標,系統會提示[General] The contentViewController ((null)) or contentViewController.view is nil.這個錯誤信息,是因為我們沒有為popover設置一個可以顯示的內容視圖控制器,下面我們來創建一個NSViewController來管理popover的內容視圖:
1.5 添加SBPopViewController
1.6 設置popviewController的view
1.7 選中ViewController.m文件,實現代碼
現在再次運行工程,如果沒有錯誤,我們就可以看到大致類似下面的這樣界面了,這樣我們就實現了可以在系統狀態欄中添加應用的常駐標志,點擊它,并可以彈出一個內容展示窗口了。
關于這個練習項目的演示代碼,有興趣的同學可以在github來下載StatusBarDemo
下一篇,我們繼續來實現關閉popover、 鼠標事件的監聽,window窗口的處理以及應用退出的方法
祝大家玩的愉快~