У меня есть XIB с моей точки зрения и NSPopover с транзиторной поведением:NSPopover закрывается автоматически
В контроллере представления, у меня есть действие, чтобы контролировать поповер так:
@IBAction func moreClicked(sender: NSButton) {
if !moreOpen {
moreOpen = true
scriptsPopover.showRelativeToRect(sender.bounds, ofView: sender, preferredEdge: 2)
} else {
moreOpen = false
scriptsPopover.close()
}
}
Когда я нажимаю кнопку, popover появляется, как ожидалось. Но через 5 секунд он исчезает.
Я хочу, чтобы popover отображал несколько кнопок и исчезал только тогда, когда пользователь нажимает одну из этих кнопок или щелкает в другом месте пользовательского интерфейса. Как и кнопка «Автозапуск» в Interface Builder, чтобы упомянуть пример.
Я попытался определить поведение как переходный, полупрерывный, определяемый приложением. Все имеют точно такой же результат: он увольняет себя через несколько секунд.
Я попытался реализовать делегат popoverShouldClose и вернуть false, чтобы я мог контролировать его. Он блокирует закрытие, но когда пользователь нажимает кнопку, чтобы закрыть, он просто открывает новый popover поверх старого. Попутчик также теряет свою стрелку после того, как я верну ложь из popoverShouldClose, которая выглядит странно.
Вот запись раздражающих автоматического закрытия
Вызывается ли ваш метод 'moreClicked()' во второй раз? Это закрыло бы популярность. –