Objective-C 入門指南 - 輸入與 TextField

我們可以在第一個及第二個 TextField 輸入任何文字,按下 Enter 後會自動反白




這是 Mac 底下預設的 GUI 反應,不過我們希望使用者對第二個 TextField 輸入任何文字,因為第二個 TextField 是用來顯示編碼結果的。


在 Interface Builder 中 TextField 的屬性視窗有 SelectableEditable 兩個選項,預設為勾選



兩個都要取消勾選,這樣重新編譯 (compile) 後,使用者就無法在第二個 TextField 進行輸入



另一方面,我們希望使用者在第一個 TextField 輸入文字,輸入完成按下 Enter 後,程式就能儲存輸入文字到屬性 (property) inputText 之中,並且在 displayField 顯示使用者輸入文字的提示訊息。


還記得嗎?我們之前設定 inputSomething: 方法 (method) 與第一個 TextField 產生連結,因此取得使用者輸入的相關程式碼要放在 inputSomething: 內,如下
- (IBAction) inputSomething: (id)sender {
    inputText = [inputField stringValue];
    NSString *temp = @"This is Input textfield. Your input is '";
    temp = [temp stringByAppendingString: inputText];
    temp = [temp stringByAppendingString: @"'"];
    [displayField setStringValue: temp];
 
    [temp autorelease];
}


inputSomething: 的設計很簡單,首先以 inputField 的 stringValue 取得使用者輸入文字,並將該文字的指標 (pointer) 儲存到 inputText 裡
inputText = [inputField stringValue];


然後開始建立提示訊息,我們將使用者輸入文字用單引號圍起來,最後在 displayField 印出該訊息
NSString *temp = @"This is Input textfield. Your input is '";
temp = [temp stringByAppendingString: inputText];
temp = [temp stringByAppendingString: @"'"];
[displayField setStringValue: temp];
 
[temp autorelease];


Build and Go ,輸入文字後按 Enter 結果如下



接下來,我們繼續設置編碼與解碼的功能吧!


中英文術語對照
編譯compile
屬性property
方法method
指標pointer


您可以繼續參考
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

沒有留言: