項(xiàng)目開(kāi)發(fā)是最有效果的學(xué)習(xí)途徑(沒(méi)有之一),現(xiàn)在我們從開(kāi)發(fā)一個(gè)小的狀態(tài)欄上的App入門(mén),通過(guò)逐步實(shí)現(xiàn)功能,來(lái)漸漸上手熟悉Mac OSX上的基礎(chǔ)控件使用方法。通過(guò)本練習(xí),希望能夠幫助有興趣的同學(xué)掌握如下基礎(chǔ)知識(shí):
* NSStatusBar 控件的使用
* NSPopover 的基本使用
* (鼠標(biāo))事件監(jiān)聽(tīng)方法
* 結(jié)束App的方法?
好了,開(kāi)始動(dòng)手!
1.1 創(chuàng)建演示項(xiàng)目:StatusBarDemoApp


在Mac OSX系統(tǒng)中,屏幕的右上角就是我們說(shuō)的狀態(tài)欄(NSStatusBar),一直是常駐應(yīng)用的必爭(zhēng)之地。我們只需要?jiǎng)?chuàng)建一個(gè)item ,然后將創(chuàng)建好的item加載到狀態(tài)即可,我們只需要使用NSStatusBar的statusItemWithLength:方法就可以了(這個(gè)方法會(huì)創(chuàng)建好一個(gè)NSStatusItem,并且將它自動(dòng)的添加到狀態(tài)欄中)。
1.2 選中ViewController.m文件,添加代碼

1.3 添加圖片資源

如果沒(méi)有出錯(cuò),運(yùn)行項(xiàng)目,你應(yīng)該看到一個(gè)空的窗口,而且在屏幕的右上角已經(jīng)出現(xiàn)了我們應(yīng)用的常駐標(biāo)志^_^,是不是感覺(jué)很容易啊~

這時(shí)你點(diǎn)擊狀態(tài)欄上的圖標(biāo),它沒(méi)有任何反應(yīng),因?yàn)槲覀冞€沒(méi)有給它添加事件響應(yīng)的方法。我們希望點(diǎn)擊它能夠彈出一個(gè)視圖,顯示它的內(nèi)容或者功能,下面我們就來(lái)接著實(shí)現(xiàn)它。
NSPopover 提供了在屏幕內(nèi)容視圖上顯示額外信息內(nèi)容的一種方式(其實(shí)這個(gè)類(lèi)似于在iPad開(kāi)發(fā)中是常見(jiàn)的UIPopoverPresentationController),它的定位相對(duì)與現(xiàn)有內(nèi)容。
在ViewController中添加popover屬性,并在viewDidLoad中進(jìn)行初始化和配置。
1.4 現(xiàn)在ViewController.m實(shí)現(xiàn)代碼:

如果這時(shí)運(yùn)行項(xiàng)目工行,我們嘗試點(diǎn)擊狀態(tài)欄圖標(biāo),系統(tǒng)會(huì)提示[General] The contentViewController ((null)) or contentViewController.view is nil.這個(gè)錯(cuò)誤信息,是因?yàn)槲覀儧](méi)有為popover設(shè)置一個(gè)可以顯示的內(nèi)容視圖控制器,下面我們來(lái)創(chuàng)建一個(gè)NSViewController來(lái)管理popover的內(nèi)容視圖:
1.5 添加SBPopViewController


1.6 設(shè)置popviewController的view

1.7 選中ViewController.m文件,實(shí)現(xiàn)代碼

現(xiàn)在再次運(yùn)行工程,如果沒(méi)有錯(cuò)誤,我們就可以看到大致類(lèi)似下面的這樣界面了,這樣我們就實(shí)現(xiàn)了可以在系統(tǒng)狀態(tài)欄中添加應(yīng)用的常駐標(biāo)志,點(diǎn)擊它,并可以彈出一個(gè)內(nèi)容展示窗口了。

關(guān)于這個(gè)練習(xí)項(xiàng)目的演示代碼,有興趣的同學(xué)可以在github來(lái)下載StatusBarDemo
下一篇,我們繼續(xù)來(lái)實(shí)現(xiàn)關(guān)閉popover、 鼠標(biāo)事件的監(jiān)聽(tīng),window窗口的處理以及應(yīng)用退出的方法
祝大家玩的愉快~