Cocoa GUI基於以下四個概念:
Nib文件
nib文件是對象實例的存檔, 它由Interface Builder生成. 和其他界面生成系同的是, nib文件不是生成的一段代碼. 它是一組真實的對象, 經過特殊編碼保存在磁盤中. nib文件中的對象由
Interface Builder中的圖形工具創建和操作.
nib文件通常將一組相關的界面對象及其資源一起打包, 也伴隨著對象之間如何關聯, 對象與您應用程序的其他對象如何關聯的信息. nib文件以特殊的存檔方式, 或者叫freeze-drying(速凍干燥)方式來描述它保存的所有對象, 以便應用程序在運行時能再生成並使用他們.
每個圖形界面的應用程序至少有一個nib文件, 它在應用程序啟動時被自動加載. 主nib文件通常包含了應用程序菜單, 而輔助的nib文件包含應用程序窗口及其關聯的界面對象. For example: Photoshop可能有一些輔助nib文件, 用來描述各種調板和控件以便您處理圖像.
插座變量 Outlets
插座變量是類的頭文件中以IBOutlet關鍵字標記的特殊實例變量, 它包含了對另一個對象的引用. 對象經由插座變量向應用程序的其它對象發送消息來與之通信.
插座變量能引用程序中的任何對象: 界面對象, 自定義類的實例, 甚至是應用程序對象自己. 插座實例變量於眾不同的是, Interface Builder只能識別IBOutlet關鍵字, 使您能操作插座變量定義的連接. 一旦定義了連接, 對象就在程序運行時就被聯系起來. 使用Interface Builder定制對象之間的連接把您從手工編寫初始化代碼中解脫出來. 除了插座變量之外, 還有許多方法能在應用程序中引用對象, 但插座變量與Interface Builder極大的便利了引用的初始化工作.
動作 Actions
動作是類定義中以IBAction關鍵字標記的特殊方法, 它由界面對象觸發.跟插座變量類似, Interface Builder也能識別頭文件中的動作聲明. 類似地, Interface Builder允許您將用戶界面產生的一個動作(比如一個按鈕)與對象的方法相連接
話外:
用MVC模式設計應用程序
Cocoa應用程序中利用了一個經久不衰的面向對象范例 -----
模型 -- 視圖 -- 控制器 (Model - View - Controller, MVC)模式.
模型
- 窗口(Windows)
- Nib文件
- 插座變量(Outlets)
- 動作(Actions)
Nib文件
nib文件是對象實例的存檔, 它由Interface Builder生成. 和其他界面生成系同的是, nib文件不是生成的一段代碼. 它是一組真實的對象, 經過特殊編碼保存在磁盤中. nib文件中的對象由
Interface Builder中的圖形工具創建和操作.
nib文件通常將一組相關的界面對象及其資源一起打包, 也伴隨著對象之間如何關聯, 對象與您應用程序的其他對象如何關聯的信息. nib文件以特殊的存檔方式, 或者叫freeze-drying(速凍干燥)方式來描述它保存的所有對象, 以便應用程序在運行時能再生成並使用他們.
每個圖形界面的應用程序至少有一個nib文件, 它在應用程序啟動時被自動加載. 主nib文件通常包含了應用程序菜單, 而輔助的nib文件包含應用程序窗口及其關聯的界面對象. For example: Photoshop可能有一些輔助nib文件, 用來描述各種調板和控件以便您處理圖像.
插座變量 Outlets
插座變量是類的頭文件中以IBOutlet關鍵字標記的特殊實例變量, 它包含了對另一個對象的引用. 對象經由插座變量向應用程序的其它對象發送消息來與之通信.
插座變量能引用程序中的任何對象: 界面對象, 自定義類的實例, 甚至是應用程序對象自己. 插座實例變量於眾不同的是, Interface Builder只能識別IBOutlet關鍵字, 使您能操作插座變量定義的連接. 一旦定義了連接, 對象就在程序運行時就被聯系起來. 使用Interface Builder定制對象之間的連接把您從手工編寫初始化代碼中解脫出來. 除了插座變量之外, 還有許多方法能在應用程序中引用對象, 但插座變量與Interface Builder極大的便利了引用的初始化工作.
動作 Actions
動作是類定義中以IBAction關鍵字標記的特殊方法, 它由界面對象觸發.跟插座變量類似, Interface Builder也能識別頭文件中的動作聲明. 類似地, Interface Builder允許您將用戶界面產生的一個動作(比如一個按鈕)與對象的方法相連接
話外:
用MVC模式設計應用程序
Cocoa應用程序中利用了一個經久不衰的面向對象范例 -----
模型 -- 視圖 -- 控制器 (Model - View - Controller, MVC)模式.
模型
持有數據並定義數據的邏輯操作視圖
為用戶可視化的呈現對象, 如窗口和按鈕控制器
在模式和視圖之間起到中間人角色的對象MVC范例適用於很多應用程序, 因為控制器在中間的協調角色使模型對象無需知道界面的狀態和事件. 視圖對象同樣也不必知道模型對象的編程接口. 這樣將問題分割開來, 有助於在應用程序中封裝各種對象. 這也有助於代碼復用, 因為模型可用在其它地方, 甚至是另一平台.

Leave a comment