對應到 Clear 按鈕的 clear: 方法 (method) 如下
- (IBAction) clear: (id)sender { [inputField setStringValue: @""]; inputText = @""; [outputField setStringValue: @""]; outputText = @""; [displayField setStringValue: @"This is Clear button. Your input is clear."]; }
這是依序將 inputField 、 inputText 、 outputField 及 outputText 設定為 @"" ,最後在 displayField 顯示完成工作的提示訊息。
Build and Go ,我們先輸入 "There is no spoon." 並且編碼
按下 Clear 按鈕,完成清除
至於 Copy 按鈕,我們希望設計成將編碼或解碼的結果拷貝到系統的剪貼簿,這就稍微複雜一點,程式碼如下
- (IBAction) copy: (id)sender { if (outputText == nil || ![outputText compare: @""]) { [displayField setStringValue: @"This is Copy button. No output string!!"]; } else { NSPasteboard *pasteBoard = [NSPasteboard generalPasteboard]; [pasteBoard declareTypes:[NSArray arrayWithObjects:NSStringPboardType, nil] owner:nil]; [pasteBoard setString: [outputField stringValue] forType:NSStringPboardType]; [displayField setStringValue: @"This is Copy button. Result is copied to clipboard."]; } }
以上提供的是 Mac OS X 10.5 之前作業系統版本的做法, 10.6 以後的寫法,請參考 Pasteboard Programming Guide 。
首先建立 NSPasteboard 物件 (object) 變數 pasteBoard
NSPasteboard *pasteBoard = [NSPasteboard generalPasteboard];
然後向 pasteBoard 傳遞 declareTypes: 訊息,以 NSArray 物件當第一個參數 (parameter) ,此 NSArray 的第一個元素為貼到剪貼簿的物件型態 (type) ,即 NSStringPboardType
[pasteBoard declareTypes:[NSArray arrayWithObjects:NSStringPboardType, nil] owner:nil];
最後設定 pasteBoard 的字串,也就是 outputField 中的內容
[pasteBoard setString: [outputField stringValue] forType:NSStringPboardType];
Build and Go ,我們再次輸入 "There is no spoon." 並且編碼,然後點擊 Copy
這樣就可以把結果貼到其他地方囉
接下來,我們繼續設置存檔與讀檔的功能吧!
中英文術語對照 | |
---|---|
字串 | string |
物件 | object |
參數 | parameter |
型態 | type |
您可以繼續參考
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
沒有留言:
張貼留言