Автоматическое отображение NSPopover в NSStatusBar
Я пытаюсь сделать так, чтобы NSPopover автоматически появлялся под значком в строке состояния, когда пользователь впервые устанавливает мое приложение. Как Google Drive делает:
Я использую точный код, упомянутый в этом ответе, который идеально подходит для ручного отображения всплывающего окна (например, по клику пользователя). Чтобы всплывающее окно отображалось автоматически, я добавил следующую строку в конце applicationDidFinishLaunching
метод: [self.controller menuletClicked:1]
который вызывает вниз в showRelativeToRect...
Теперь это иногда работает идеально (всплывающее окно появляется прямо под значком в строке состояния), но в других случаях всплывающее окно отображается в левом нижнем углу моего экрана. Это работает более последовательно, если я подожду несколько секунд, а затем выполню эту строку кода (например, через dispatch_after...
). Но все равно иногда терпит неудачу и появляется внизу моего экрана.
Это указывает на то, что что-то не "готово"? (как предложено в этом вопросе) - но я проверил, что объект popover не равен нулю, и границы прямоугольника выглядят хорошо. Я также добавил loadView, чтобы попытаться форсировать загрузку, но, похоже, ничего не работает!
Как правильно настроить автоматическое обнаружение NSPopover? Или как сделать так, чтобы оно появилось в нужном месте? Спасибо!!