macOS 開發(fā)上手要點
第一部分:
關(guān)鍵詞:工具、創(chuàng)建APP 時湾碎、設(shè)計UI宙攻、調(diào)試代碼。
開發(fā)條件:
1介褥、一臺運(yùn)行 macOS Sierra 的 Mac座掘。
2、Xcode:用于創(chuàng)建 macOS app 的 IDE柔滔。
3溢陪、開發(fā)者賬號,生產(chǎn)調(diào)試和發(fā)布證書睛廊。
創(chuàng)建APP工程:選擇cocoa application類型形真,創(chuàng)建好的工程自帶以下內(nèi)容:
? 窗口是可調(diào)整大小的,可以最小化也可以全屏超全。
? 有一套完整的菜單咆霜,雖然你沒有做任何事,其中許多已經(jīng)在工作了嘶朱。
? Dock 圖標(biāo)有常用的菜單蛾坯。
macOS和iOSUI組件不同,組件面板屬性不同见咒,自動布局有更多屬性偿衰。
技巧:組件名稱或內(nèi)容長度大于本身長度時,無法顯示所有文本改览,打開 Editor 菜單然后選擇 Size to Fit Content下翎。
第二部分:
關(guān)鍵詞:創(chuàng)建、組件宝当、啟動视事、構(gòu)建UI、處理交互庆揩。
Storyboard 編輯窗口包含三個組件:
? Application Scene 應(yīng)用程序場景俐东,包含菜單欄。
? Window Controller Scene 窗口場景订晌,可以管理相同場景的多個窗口虏辫,負(fù)責(zé)調(diào)整大小、app 是否自動保存窗口大行獠Α(Autosave name )和位置等砌庄。
? View Controller Scene 視圖場景,頁面繪制之處。
要控制app的窗口最小尺寸娄昆,需要設(shè)置Window Controller Scene和View Controller Scene的Content Size以及Minimum Content Size佩微。
如果不設(shè)置自動保存名稱(Autosave name ),那么窗口每次都會出現(xiàn)在設(shè)計時的位置萌焰。
APP構(gòu)建流程:UI設(shè)計
選中需要拷貝的組件哺眯,按下Command-D組合鍵即可拷貝粘貼組件。
制作stack view:同時選中需要歸組的組件扒俯,然后點擊 Editor/Embed In/Stack View奶卓。要讓stackview內(nèi)的組件填滿 stack view,選中新的 Stack View陵珍,然后在 Attributes Inspector 里做如下改變:
? Distribution:Fill Equally
? Spacing:0
Stack View是一個容器寝杖,可以將其作為一個單獨的組件违施,為其添加autosize布局約束互纯,添加方法和iOS中一致。
使用lable制作倒計時磕蒲,可以將字體設(shè)置為“Helvetica Neue”留潦,可以避免倒計時閃爍。
在 Attributes Inspector 中辣往,將 ** Scaling** 設(shè)置為 Proportionally Up or Down兔院,更改布局約束的value為Standard Value,可以切換約束值計算方式站削。
菜單欄的結(jié)構(gòu)是一系列嵌套菜單和菜單項坊萝,每個菜單項包含一個帶有自己的 NSMenuItems 的子菜單(NSMenu),NSMenuItems也可以增加下級菜單(NSMenu)许起。選中子菜單項十偶,按下Control鍵,右鍵拖動指向Application (綁定系統(tǒng)自帶程序級事件)园细、 First Responder(綁定用戶可自定義事件) 惦积,可以為菜單綁定響應(yīng)事件。當(dāng)實現(xiàn)事件的窗口不是第一響應(yīng)者猛频,那么對應(yīng)菜單會被置灰狮崩,系統(tǒng)會自動檢測。
要添加新的窗口:可以在右下角Objects Library 中搜索 “window”鹿寻,將一個新的窗口控制器拖動到可視化編輯器中睦柴,開發(fā)方式和默認(rèn)窗口相同。需要注意的是毡熏,如果想將彈出新窗口操作綁定到菜單上坦敌,可以選中子菜單項,按下Control鍵,右鍵拖動指向新的window恬试,從出現(xiàn)的彈出窗口中選擇 Show窝趣,以此創(chuàng)建一個 segue(窗口間聯(lián)系)。窗口新建好后训柴,還需要為其創(chuàng)建對應(yīng)的controller代碼文件哑舒,方法同iOS一樣,只需要在創(chuàng)建好代碼文件后在 Identity Inspector 中幻馁,將其類設(shè)置為 新建的controller文件洗鸵。
第三部分:
關(guān)鍵詞:沙盒
沙盒 app 有自己的空間,可以使用單獨的文件存儲區(qū)域仗嗦,無法訪問其他 app 創(chuàng)建的文件膘滨,具有有限的訪問權(quán)限,對于 macOS app稀拐,這是可選的火邓;但是,如果要通過 Mac App Store 分發(fā) app德撬,則必須將其沙盒化铲咨。一般情況下,都應(yīng)將 app 沙盒化蜓洪,因為這使 app 減少潛在問題纤勒。
開啟沙盒:在 Project Navigator 中選擇項目(頂部帶有藍(lán)色圖標(biāo)的那個)。在 Targets 中選擇 項目隆檀,然后單擊頂部選項卡中的 Capabilities摇天。單擊開關(guān)以啟用 App Sandbox,展開后顯示現(xiàn)在 app 可以請求的各種權(quán)限恐仑。
工程文件結(jié)構(gòu)組織:同iOS差不多泉坐,后續(xù)深入研究不斷優(yōu)化。