[英]How to set TextField in InputAccessoryView as First Responder [Swift]
[英]How to set first responder for NSTextView in Swift?
編輯:在macOS項目中
我有一個簡單的ViewController,它在狀態項菜單應用程序上顯示為彈出框。
我使用NSTableView更改視圖文本的文本,具體取決於單擊的項目。 我使用的代碼與此類似:
mainTextField.insertText(newStr, replacementRange: theRange)
(我使用insertText的目的是將更改記錄在撤消管理器中)
然后我突出顯示文本:
// create the new NSRange
let range = NSRange(location: startRange, length: newStrLength)
// select the range in field
mainTextField.selectedRange = range
所有操作均正常,但突出顯示了文本,但使用了淺灰色而不是通常的天藍色,表明該控件不是第一響應者。 當我單擊該字段時,選擇消失。
實際上,我希望NSTextView成為第一響應者,因此我可以直接復制所選文本。
編輯:如果我按鍵盤上的Tab鍵,我將使textView成為第一響應者(灰色選擇變為標准的天藍色)。
在AppKit中,您需要:
if mainTextField.acceptsFirstResponder {
mainTextField.window?.makeFirstResponder(mainTextField)
}
在這種情況下,不檢查acceptsFirstResponder
可能是安全的,但也不會造成傷害。
UIKit
) 您需要調用mainTextField.becomeFirstResponder()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.