У меня есть NSSearchField в NSPopover. Этот popover открывается при щелчке элемента NSStatusBar.Force NSSearchField начинает редактирование, когда он становится первым ответчиком
В моем контроллере NSPopover viewWillAppear()
я вызываю self.view.window?.makeFirstResponder(searchField)
на свой NSSearchField. Я хочу, чтобы это поле поиска было готово для редактирования при представлении popover. Подготовившись к редактированию, я имею в виду, что пользователю не нужно щелкнуть внутри NSSearchField, чтобы начать печатать.
На данный момент моя реализация не всегда работает. Иногда он функционирует, и popover открывается, когда поле поиска готово, курсор мигает. Однако большую часть времени, особенно если я редактирую текст в другом приложении, когда открываю popover, необходимо щелкнуть NSSearchField для редактирования.
Я подклассифицировал поле поиска и переопределил его метод becomeFirstResponder()
, и я могу подтвердить, что он вызывается каждый раз.
Почему я не могу «украсть» право редактировать поле поиска из других приложений, когда поле становится первым ответчиком? Возможно ли это?
Возможно, но не рекомендуется; кража фокуса от другого приложения по существу будет похожа на вредоносное ПО. –
Я вижу вашу точку зрения. При этом некоторые приложения делают это: если вы вводите текстовое поле и открываете приложение «Сообщения», NSTextField, в котором вы вводите сообщения, автоматически редактируется. Может быть, это поведение доступно только Apple? – elliottbolzan
Обычно это вспомогательный инструмент для приложения, которое будет установлено, а затем предоставлено разрешение для такого поведения; не только для приложений Apple. –