Objective-C 入門指南 - GUI 的基本概念

圖形使用者介面 (graphical user interface) 的元件有很多種,如標籤 (label) 、按鈕 (button) 、選單 (menu) 、文字方塊 (textfield) 等等,我們打算製作的 GUI 會用到標籤、按鈕及文字方塊




GUI 的各種元件、事件處理等類別都定義在 AppKit 之中。


視窗裡頭的元件,我們會用 Interface Builder 做出來,這即是 MVC 模式當中的 V ,當然也可以不用 Interface Builder ,然後自己慢慢把 View 設計出來,不過這實在有點麻煩,所以利用 Interface Builder 會是比較有效率的方案。


至於 MVC 模式中的 C ,這是說我們得設計 GUI 專屬的 Controller 類別,像是按下按鈕後在某個文字方塊顯示訊息,這樣的工作我們得自己好好規劃,使視窗元件與元件間能有適當的互動,而不至於弄了個元件卻無作用。


我們開始來著手 GUI 的設計,首先,建立新專案



這裡左側選擇 Application ,然後從右側框框出現的圖示選擇 Cocoa Application ,最後點擊 Choose...



接者出現專案路徑與名稱的視窗,這裡輸入 demo2 即可,最後點擊 Save



為什麼要建立新專案呢?因為之前的 demo 是命令列工具的專案,現在的 demo2 為 Cocoa 視窗程式的專案,專案會預先納入需要的工具,所以我們用 demo2 當成 GUI 的專案囉!


demo2 的專案視窗可以看到跟之前的 demo 不太一樣



我們在 main.m 上快速的點兩下,就可以開啟大視窗



綠色的註解 (comment) 可以忽略掉,或是改成符合自己需求的註解都可以。底下,這是 Cocoa 應用程式的執行程式,我們略去註解摘錄如下
#import <Cocoa/Cocoa.h>

int main(int argc, char *argv[])
{
    return NSApplicationMain(argc,  (const char **) argv);
}


第一行先引入 Cocoa.h
#import <Cocoa/Cocoa.h>


這是專案的預設,因為底下 main() 中
return NSApplicationMain(argc,  (const char **) argv);


NSApplicationMain 定義在 Cocoa.h 中,實際上我們也看到 main() 也只回傳 NSApplicationMain() 的函數呼叫 (function call) ,而 NSApplicationMain() 用來建立執行 NSApplication 物件 (object) 。


是的, Cocoa 預設 GUI 是用 NSApplication 來執行的。先來 Build and Go 看看這個預設程式長什麼樣子吧!



不過我們無須擔心 NSApplication 的相關細節問題,只要知道 GUI 需要利用 NSApplication 就行了,至於 GUI 的外觀,我們得利用 Interface Builder 囉!


中英文術語對照
圖形使用者介面graphical user interface
標籤label
按鈕button
選單menu
文字方塊textfield
註解comment
函數呼叫function call
物件object


您可以繼續參考
GUI 篇


相關目錄
Objective-C 入門指南
Objective-C 教材
首頁



參考資料
Learning Objective-C: A Primer
The Objective-C Programming Language
Cocoa Fundamentals Guide
Coding Guidelines for Cocoa
Advanced Memory Management Programming Guide
Archives and Serializations Programming Guide

1 則留言:

Joe 提到...

在6.1.1中怎樣新增一個button事件呢?