У меня есть NSPopover, который содержит две кнопки. Когда я открываю всплывающее окно, следующий код работает для изменения курсора на указывающую руку при наведении курсора на кнопки и нажатии кнопки, в консоли появляется «Нажатие кнопки» и NSColorPanel отображается, как требуется.
class Button: NSButton {
override func resetCursorRects() {
super.resetCursorRects()
addCursorRect(bounds, cursor: .pointingHand)
}
}
@IBAction func buttonTapped(action:Any) {
print("Button pressed")
let cp = NSColorPanel.shared
cp.setTarget(self)
NSColorPanel.setPickerMode(.none)
cp.setAction(#selector(colorDidChange))
cp.isContinuous = false
cp.level = NSWindow.Level.statusBar
cp.makeKeyAndOrderFront(self)
}
Однако, если я щелкну где-нибудь еще на экране, а затем go вернусь к NSPopover, курсор указывающей руки больше не будет появляться при наведении курсора на кнопку, и пока событие onClick все еще срабатывает (о чем свидетельствует ' Нажата кнопка «(вошли в консоль)), панель NSColorPanel не открывается.
Есть предложения относительно того, почему это может иметь место?