Objective-C 入門指南 - 增加 Controller 類別

我們的 Encrypt 類別 (class) 為 MVC 模式中的 M , V 用 Interface Builder 製作,現在要來設計連結 M 與 V 的 C ,也就是 Controller 類別




我們將新增一個 EncryptController 類別,標頭檔如下
#import <Cocoa/Cocoa.h>
#import "Encrypt.h"

@interface EncryptController: NSObject {
    // 輸入欄
    IBOutlet NSTextField *inputField;
    // 輸出欄
    IBOutlet NSTextField *outputField;
    // 提示訊息欄
    IBOutlet NSTextField *displayField;

    // 編碼與解碼的 Encrypt 物件
    Encrypt *encrypt;
    // 暫存輸入欄的 NSString 字串
    NSString *inputText;
    // 暫存輸出欄的 NSSTring
    NSString *outputText;
    // 提示訊息欄的 NSSTring
    NSString *displayText;
}

@property (retain) Encrypt *encrypt;
@property (retain) NSString *inputText, *outputText, *displayText;

// 輸入完按 Enter 鍵的動作
- (IBAction) inputSomething: (id)sender;
// 建立新的 Encrypt 物件
- (IBAction) newEncrypt: (id)sender;
// 載入已儲存的 Encrypt 物件
- (IBAction) loadEncrypt: (id)sender; 
// 儲存 Encrypt 物件
- (IBAction) saveEncrypt: (id)sender;
// 編碼並顯示結果
- (IBAction) encode: (id)sender; 
// 解碼並顯示結果
- (IBAction) decode: (id)sender; 
// 清除所有項目,所括輸入內容與顯示結果
- (IBAction) clear: (id)sender; 
// 拷貝解碼後的 NSString 字串到系統剪貼簿
- (IBAction) copy: (id)sender; 

@end

/* 《程式語言教學誌》的範例程式
   http://pydoing.blogspot.com/
   檔名:EncryptController.h
   功能:示範 Objective-C 程式 
   作者:張凱慶
   時間:西元 2012 年 7 月 */


其中, IBOutlet 與 IBAction 為對應到 Interface Builder 所製作 GUI 的標籤。我們打算用前三個 NSTextField 指標 (pointer) 表示



其他除了一個 Encrypt 屬性 (property) ,其他三個為儲存相關文字訊息的 NSString 字串 (string) 物件 (object) 。我們會慢慢逐一實作出下面宣告的方法 (method) ,現在先來將 EncryptController 類別加入 demo2 專案裡吧!首先,在 File 選單點選 New File



接著出現 New File ,由於 demo2 為 Cocoa 專案,因此預設為 Objective-C class 檔案,這裡點擊 Next 即可



預設檔名為 untitled.m ,我們要改成 EncryptController.m ,記得下面的 Also create... 也要勾選才會連帶建立標頭檔



改完後點擊 Finish 即可



這樣 demo2 專案裡就有 EncryptController.h 與 EncryptController.m 了



接下來我們要在 Interface Builder 中設定 Controller 類別,這樣才能使 EncryptController 發生作用。


中英文術語對照
類別class
指標pointer
屬性property
字串string
物件object
方法method


您可以繼續參考
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 則留言:

StevenChou 提到...

在xcode5 上,好像找不到 read class file,不知該如何建立呢?