2016-09-25 5 views
0

У меня есть объект NSTextView в сложном пользовательском представлении. Мне нужно, чтобы пользовательский вид был первым ответчиком (по нескольким причинам, например, чтобы правильно настроить кольцо фокусировки). Но курсор NSTextView все равно должен мигать, как если бы текстовым представлением был первый ответчик.Курсор мигает, когда NSTextView не является первым ответчиком?

Вот в основном то, что я хочу видеть в моем приложении (скриншот поля поиска в Apple Mail):

enter image description here

Обратите внимание, что вид текста является пустой области с курсором, расположенным на начало его. Другие элементы принадлежат родительскому пользовательскому представлению, в котором вокруг него есть фокус. Курсор мигает!

+0

Какой вид должен получить KeyDown события? Похоже, что текстовое представление в поле поиска является редактором полей в (пользовательский подкласс) 'NSTokenField',' NSSearchField' или 'NSTextField'. – Willeke

+0

Мне все равно, какой вид получит события keydown, я могу направить их в нужное место назначения (текстовое представление) в любом случае. Не имеет значения, какой тип представления является полем поиска на скриншоте? Я попробовал подклассифицировать NSTextField, но затем мне пришлось переключиться на NSTextView, предоставляя больше гибкости API. – evgeny

+0

Снимок экрана представляет собой элемент управления, содержащий текстовое представление редактора полей. Элемент управления имеет фокус, и текстовое представление является первым ответчиком. – Willeke

ответ

0

Я не мог реализовать это поведение, используя стандартные элементы управления. Мое окончательное решение состоит в том, чтобы поместить поле поиска в другое пользовательское представление с широкими полями и реализовать пользовательский рисование кольца фокусировки.

Вот как мой сквозняке управления выглядит следующим образом:

enter image description here

Смежные вопросы