[英]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.