Редактируемый NSTextField в пользовательском представлении NSMenuItem
У меня есть подкласс NSView, который я хотел бы содержать редактируемый NSTextField, похожий на Spotlight.
У меня есть значительные трудности с получением текстового поля для выбора и выделения. Если я быстро и быстро нажимаю на область редактирования текстового поля, я могу ввести текст, но он отображается серым, как будто я добавляю текст в поле приложения, которое не является передовым.
Я попытался получить фокус окна просмотра с помощью viewDidMoveToWindow
, но, очевидно, окна NSMenuItem - это карбоновые окна, которые не очень хорошо обрабатывают ключи.
Короче говоря, какой хороший способ сделать эту работу успешно? Я знаю, что Spotlight - это окно без границ, но оно не подходит для моих целей.
Любые предложения будут очень полезны.
2 ответа
После долгих исследований, две вещи являются общепринятыми:
(1) Если вы ищете способы подкласса встроенного элемента пользовательского интерфейса для особых возможностей, есть вероятность, что вы делаете что-то не так, или, по крайней мере, есть лучший способ сделать то, что вы пытаетесь сделать,
(2) Причина, по которой следует следовать указаниям интерфейса, заключается в большей совместимости с будущим. Нет гарантии, что субклассовый элемент пользовательского интерфейса будет совместим с будущими версиями ОС.
Brass Tacks - субклассирование элементов пользовательского интерфейса, как правило, не рекомендуется.
Возможно, вы захотите проверить MAAttachedWindow Мэтта Джеммелла.
http://mattgemmell.com/2007/10/03/maattachedwindow-nswindow-subclass