2010-03-20 54 views
13

我正在使用NSTextView來允許多行輸入。但是,由於我的應用程序的性質,用戶在按TAB時會更加舒適地轉向下一個輸入元素。如何讓Tab鍵將焦點移出NSTextView?

如何讓TAB退出NSTextView,同時保持Enter鍵的換行符?

回答

4

你需要在子類中實現它。

我爲Translate Text寫了這樣一個子類。歡迎您使用its BSD license。這裏的the headerthe implementation file

...同時保持Enter鍵的換行符?

我的主要目的是當用戶按下回車鍵時將動作發送到目標,並且我也從視圖中將焦點放在了焦點上。但是,兩者都是代碼中的明確聲明;您可以簡單地將該代碼註釋掉或將其刪除。

+1

用於輸入授權碼在標題爲kVK_ANSI_KeypadEnter定義。同樣,Tab是kVK_Tab。 – 2013-07-25 04:21:17

17

你可以在你的文本視圖的委託實施-textView:doCommandBySelector:

- (BOOL)textView:(NSTextView *)aTextView doCommandBySelector:(SEL)aSelector { 
    if (aSelector == @selector(insertTab:)) { 
     [[aTextView window] selectNextKeyView:nil]; 
     return YES; 
    } 

    return NO; 
} 

http://developer.apple.com/documentation/Cocoa/Reference/NSTextViewDelegate_Protocol

+5

非常好的方法。你也可以檢查'insertBacktab:'並以類似的方式調用'selectPreviousKeyView:'。 – 2011-09-23 06:49:36

相關問題