簡體   English   中英

如何使 Tab 鍵將焦點移出 NSTextView?

[英]How can I make the Tab key move focus out of a NSTextView?

我正在使用 NSTextView 來允許多行輸入。 但是,由於我的應用程序的性質,用戶在按下 TAB 時會更舒服地移動到下一個輸入元素。

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

您可以在文本視圖的委托中實現-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

您需要在子類中實現它。

我為Translate Text寫了這樣一個子類。 歡迎您在其 BSD 許可下使用它。 這是頭文件實現文件

…同時保持 Enter 鍵的換行行為?

我的主要目的是在用戶按下 Enter 時向目標發送一個動作,並且我還讓它從視圖中刪除焦點。 但是,兩者都是代碼中的顯式語句; 您可以簡單地注釋掉該代碼或刪除它。

Wevah & Quinn 答案的 Swift 版本:

func textView(_ textView: NSTextView, doCommandBy commandSelector: Selector) -> Bool {
    switch commandSelector {
    case #selector(NSResponder.insertTab(_:)):
        textView.window?.selectNextKeyView(nil)
        return true
    case #selector(NSResponder.insertBacktab(_:)):
        textView.window?.selectPreviousKeyView(nil)
        return true
    default:
        return false
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM