Редактируемый NSTextField в пользовательском представлении NSMenuItem - PullRequest
3 голосов
/ 01 марта 2011

У меня есть подкласс NSView, который я хотел бы содержать редактируемый NSTextField, похожий на Spotlight.

У меня возникли значительные трудности с выделением и выделением текстового поля. Если я быстро и быстро нажимаю на область редактирования текстового поля, я могу фактически ввести текст, но он выглядит серым, как будто я добавляю текст в поле приложения, которое не является передовым.

Я попытался сфокусировать окно просмотра, используя viewDidMoveToWindow, но, очевидно, окна NSMenuItem - это углеродные окна, которые не очень хорошо обрабатывают ключи.

Короче говоря, каков хороший способ сделать эту работу успешной? Я знаю, что Spotlight - это окно без границ, но оно не подходит для моих целей.

Любые предложения будут очень полезны.

Ответы [ 2 ]

1 голос
/ 03 марта 2011

После долгих исследований общепринятыми являются две вещи:

(1) Если вы ищете способы подкласса встроенного элемента пользовательского интерфейса для особых возможностей, есть вероятность, что вы делаете что-то не так, или, по крайней мере, есть лучший способ сделать то, что вы пытаюсь сделать.

(2) Причина, по которой следует следовать указаниям интерфейса, заключается в большей совместимости с будущим. Нет гарантии, что субклассовый элемент пользовательского интерфейса будет совместим с будущими версиями ОС.

Brass Tacks - субклассирование элементов пользовательского интерфейса обычно не рекомендуется.

0 голосов
/ 01 марта 2011

Возможно, вы захотите проверить MAAttachedWindow Мэтта Джеммелла.

http://mattgemmell.com/2007/10/03/maattachedwindow-nswindow-subclass

...