看過yllan的「如何用 Cocoa 為現有的 command-line 程式寫圖形介面」演講,以及
google到的用Xcode和Interface Builder寫delegate這篇文章後,跌跌撞撞也終於讓我搞懂了。
教訓一:寫完實作protocol的class,它會出現在IB的「Library」小視窗中(通常是藍色方塊)。
記得要手動把它拖到「MainMenu.xib」小視窗,才能玩連連看哦!
這個搞了我好久(哭哭)
按住control,滑鼠按住視覺元件並拖到小方塊上、放開滑鼠,選擇"delegate",就完成了。
接下來是實驗結果。
我實作NSTextViewDelegate的兩個method:
- (void)textDidChange:
- (BOOL)textView: doCommandBySelector
結論是,在text view中打任何字(含中英文及空白),會執行textDidChange。
而舉凡enter(return)、tab、shift-tab、Command-C、Ctrl-C等平常使用的「功能鍵」、「組合鍵」都會跑去執行textView: doCommandBySelector。
所以QS提供的特殊指令,例如按下"."進入純文字模式、按下","啟動comma trick、按下"~"切換到home、長按"/"切換到root等,都不能在textView: doCommandBySelector中處理。
沒有留言:
張貼留言