本次教學目標:
操作環境:
OS X Version 10.9.1
Xcode Version 5.1 (5B130a)
OS X 支援 bindings 的功能,在開發 OS X 程式時,可以在視圖設計畫面,透過元件 Bindings 頁面修改選項,來連結程式物件與視圖元件。可以在某些情況下減少開發所需要撰寫的程式碼。
本次教學延續使用 OSX APP 教學 Part7-DrawRect 的專案,在視窗中加上拉桿。使用者可以透過拖拉拉桿來變更顯示的 Label 的字體大小。
- 透過修改 Bindings 的選項,連結程式物件與視圖元件。
- 了解 NSUserDefaults。
操作環境:
OS X Version 10.9.1
Xcode Version 5.1 (5B130a)
OS X 支援 bindings 的功能,在開發 OS X 程式時,可以在視圖設計畫面,透過元件 Bindings 頁面修改選項,來連結程式物件與視圖元件。可以在某些情況下減少開發所需要撰寫的程式碼。
本次教學延續使用 OSX APP 教學 Part7-DrawRect 的專案,在視窗中加上拉桿。使用者可以透過拖拉拉桿來變更顯示的 Label 的字體大小。
建立 OS X Application 專案
設計版面(layout)
Min Value:1
Max Value:55
Current Value:1
勾選 Continuous。
勾選 Continuous 的意思是立即更新程式物件或視圖元件,如果沒有勾選這個選項的話,會等到使用者停止操作元件的動作時才更新程式物件或視圖元件。
Max Value:55
Current Value:1
勾選 Continuous。
勾選 Continuous 的意思是立即更新程式物件或視圖元件,如果沒有勾選這個選項的話,會等到使用者停止操作元件的動作時才更新程式物件或視圖元件。
本次教學將利用 NSUserDefaults 儲存變數 fontSize。NSUserDefaults 讓開發者使用鍵值對應的方式存取資料,而且這些資料會自動儲存起來,以供下次程式開啟時使用。
NSUserDefaults 物件無法讓 Bindings 的選項設定連結,但是我們可以透過 NSDefaultsController 來連結。NSDefaultsController 的 values 方法可以取得 NSUserDefaults 的 property,再以 fontSize 為 key 取得所要連結的值。
NSUserDefaults 物件無法讓 Bindings 的選項設定連結,但是我們可以透過 NSDefaultsController 來連結。NSDefaultsController 的 values 方法可以取得 NSUserDefaults 的 property,再以 fontSize 為 key 取得所要連結的值。
測試結果
接下來測試一下完成的程式。
按下鍵盤上的 Command + Shift + K,清除專案之前編譯的檔案。
按下鍵盤上的 Command + R,編譯並執行程式。
按下鍵盤上的 Command + Shift + K,清除專案之前編譯的檔案。
按下鍵盤上的 Command + R,編譯並執行程式。
後續討論
除了單純數值的 bindings 外,bindings 也可以設定陣列等物件,可以更方便呈現在 NSTableView 的資料。其他更多的資訊請參考文末連結。
關於這次的Sample Code 下載:
https://github.com/TakoBear/OSXHelloBindings
關於這次的Sample Code 下載:
https://github.com/TakoBear/OSXHelloBindings
參考
Cocoa Application Competencies for OS X
NSUserDefaultsController Class Reference
NSUserDefaults Class Reference
NSUserDefaultsController Class Reference
NSUserDefaults Class Reference