Xcode Swift:将NSStatusBarButton设置为在显示NSPover后高亮显示
我有一个NSPover连接到窗口的NSView。目前,我有一个NSStatusItem,显示NSStatusMenu。当您单击该菜单中的某个选项时,我将该菜单设置为nil,然后显示nspover。问题是,我希望在显示NSPover时状态栏按钮保持高亮显示,但它仅在我单击按钮打开NSPover时闪烁高亮显示。我尝试过statusItem.button?.highlight(true)但无效,而且更改按钮类型似乎也没有任何作用。有什么想法吗?谢谢此外,是否有任何方法可以在打开NSPOVER后使NSView位于popover内,或者更具体地说,使NSView中的文本字段处于选中状态?我将popover行为设置为transient,但只有在您首先单击popover,然后在popover外部单击时,它才会关闭Xcode Swift:将NSStatusBarButton设置为在显示NSPover后高亮显示,xcode,macos,swift,Xcode,Macos,Swift,我有一个NSPover连接到窗口的NSView。目前,我有一个NSStatusItem,显示NSStatusMenu。当您单击该菜单中的某个选项时,我将该菜单设置为nil,然后显示nspover。问题是,我希望在显示NSPover时状态栏按钮保持高亮显示,但它仅在我单击按钮打开NSPover时闪烁高亮显示。我尝试过statusItem.button?.highlight(true)但无效,而且更改按钮类型似乎也没有任何作用。有什么想法吗?谢谢此外,是否有任何方法可以在打开NSPOVER后使NSV
@IBOutlet weak var mainMenu: NSMenu!
@IBOutlet weak var popover: NSPopover!
@IBOutlet weak var popoverView: NSView!
@IBOutlet weak var textField: NSTextField!
// init new menu bar item
let statusItem = NSStatusBar.systemStatusBar().statusItemWithLength(-1)
func applicationDidFinishLaunching(aNotification: NSNotification) {
// init menu bar item icon
let icon = NSImage(named: "menuIcon")
icon?.setTemplate(true) // now compatible with "dark mode"
statusItem.image = icon
statusItem.menu = mainMenu
popover.behavior = NSPopoverBehavior.Transient
//statusItem.button?.setButtonType(NSButtonType.OnOffButton)
}
@IBAction func StatusItemClicked(sender: NSButton) {
if !(popover.shown) {
popover.showRelativeToRect(sender.bounds, ofView: statusItem.button!, preferredEdge: NSMinYEdge)
}
else {
popover.close()
}
}
@IBAction func movieRegular(sender: NSMenuItem) {
statusItem.menu = nil // get rid of statusItem menu
statusItem.action = Selector("StatusItemClicked:") // func StatusItemClicked called when button clicked
StatusItemClicked(statusItem.button!) // call it so popover immediately displays first time
}
可能重复的