Автоматическое отображение NSPopover в NSStatusBar

Я пытаюсь сделать так, чтобы NSPopover автоматически появлялся под значком в строке состояния, когда пользователь впервые устанавливает мое приложение. Как Google Drive делает:

Я использую точный код, упомянутый в этом ответе, который идеально подходит для ручного отображения всплывающего окна (например, по клику пользователя). Чтобы всплывающее окно отображалось автоматически, я добавил следующую строку в конце applicationDidFinishLaunching метод: [self.controller menuletClicked:1] который вызывает вниз в showRelativeToRect... Теперь это иногда работает идеально (всплывающее окно появляется прямо под значком в строке состояния), но в других случаях всплывающее окно отображается в левом нижнем углу моего экрана. Это работает более последовательно, если я подожду несколько секунд, а затем выполню эту строку кода (например, через dispatch_after...). Но все равно иногда терпит неудачу и появляется внизу моего экрана.

Это указывает на то, что что-то не "готово"? (как предложено в этом вопросе) - но я проверил, что объект popover не равен нулю, и границы прямоугольника выглядят хорошо. Я также добавил loadView, чтобы попытаться форсировать загрузку, но, похоже, ничего не работает!

Как правильно настроить автоматическое обнаружение NSPopover? Или как сделать так, чтобы оно появилось в нужном месте? Спасибо!!

0 ответов

Другие вопросы по тегам