NSSearchField - Как выделить весь текст? (Swift / Раскадровка в macOS) - PullRequest
0 голосов
/ 06 августа 2020

Кажется, что все в сети в основном посвящено элементам управления iOS / UI, а не элементам управления macOS / Cocoa NS. В любом случае, как сделать так, чтобы NSSearchField выделял весь текст в поле программно? Я пробовал несколько методов, адаптированных из реализаций iOS UISearchBar, но ни один из них не компилировался и не работал. Я просто хочу, например, нажать кнопку и выделить текст внутри текстового поля NSSearchField. Кажется, я не могу найти в нем метода, который позволил бы этому случиться.

Спасибо за вашу помощь / внимание!

1 Ответ

0 голосов
/ 13 августа 2020

Все редактирование в NSTextField обрабатывается NSText (наследуется от NSTextView). Итак, чтобы выделить текст в поле поиска, вам необходимо установить выбранный диапазон в текущем редакторе поля. В этом примере выделяется весь текст.

Objective- C:

NSRange range = NSMakeRange(0, searchField.stringValue.length);
NSText *editor = [searchField currentEditor];
[editor setSelectedRange:range];

Swift

let range = NSRange(location: 0, length: searchField.stringValue.length)
let editor = searchField.currentEditor()
editor?.selectedRange = range
...