Поддельный NSWindow с NSView внутри NSMenuItem - PullRequest
4 голосов
/ 09 июня 2011

Прежде чем начать, я должен сказать, что знаю, что это похоже на длинный выстрел, однако я решил, что стоит попробовать.

Одно приложение, над которым я сейчас работаю, - это приложение Mac Statusbar.У него есть NSStatusItem в строке меню, и при нажатии на него будет отображаться пользовательское окно с появлением всплывающего окна (как на iPad или как у Fantastical на Mac.) В любом случае я начал тестировать это, вставив единственный элемент nsmenu в меню элементов состояния.Вид установил чистый цвет для фона в своем окне.Однако это все еще не совсем работает, как вы можете видеть на картинке ниже

enter image description here

  1. Существует небольшая белая тонкая линия над и под элементом
  2. Четкая область не прозрачна, как будто на ней установлен фильтр размытия

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

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

1 Ответ

0 голосов
/ 09 июня 2011

Поддельное окно кажется довольно странным подходом к этому.Почему бы просто не открыть обычное окно?Я предлагаю MAAttachedWindow: http://mattgemmell.com/2007/10/03/maattachedwindow-nswindow-subclass

...