Mac開(kāi)發(fā)基礎(chǔ)練習(xí):制作一個(gè)狀態(tài)欄(NSStatusBar)上的App(一)

項(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

選取項(xiàng)目模版
項(xiàng)目名稱(chēng)

在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文件,添加代碼

實(shí)現(xiàn)代碼

1.3 添加圖片資源

添加圖片資源到項(xiàng)目工程中

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

項(xiàng)目運(yùn)行結(jié)果

這時(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)代碼:

添加popover代碼,并設(shè)置

如果這時(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

添加新文件
創(chuàng)建SBPopViewController,并使用xib

1.6 設(shè)置popviewController的view

設(shè)置SBPopViewController的視圖內(nèi)容

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

設(shè)置contentViewController

現(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)容展示窗口了。

運(yùn)行結(jié)果

關(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)用退出的方法

祝大家玩的愉快~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容