2014-10-14 3 views
2

Как мой MenuBar приложение может достичь того же поведения, как 1Password или Dropbox:NSStatusItem приложение фокус

  • нажав их барное меню иконки или Popovers не перехватывать фокус, например, в то время как я нахожусь, например, TextEdit и открываю 1Password/Dropbox, мигающий курсор исчезает, но само окно не входит в фоновый режим, но я могу ввести текстовое поле 1Password.
  • , даже если они не принимают фокус в первую очередь, они исчезают, когда я нажимаю назад в другое приложение

Я выяснял, как мышь на работах в представлении поповер таблицы Dropbox с помощью NSTrackingArea с опции MouseEnteredAndExited, AssumeInside и ActiveAlways.

Я пытаюсь заставить такое поведение работать в NSPopover, которое открывается из NSStatusItem.

ответ

1

Я нашел обходное решение на данный момент. Я могу получить такое же поведение, используя неактивирующий NSPanel с уровнем окна kCGPopUpMenuWindowLevelKey, и мне пришлось переопределить canBecomeKeyWindow, чтобы вернуть true.

К сожалению, я еще не нашел пути, чтобы заставить NSPopover вести себя так, поскольку это не подкласс NSWindow.

0

Чтобы задать тип поведения вы описываете вы используете:

yourPopover.behavior = .transient