我正在构建一个仅有菜单栏的应用程序。我为我的菜单项创建了一个自定义视图,但在悬停时它没有高亮(蓝色)。
自定义类正在工作,它能检测到点击事件,但是没有高亮。我尝试在绘制方法中使用菜单的enclosingMenuItem属性来检查高亮状态,但没有效果。
override func draw(_ dirtyRect: NSRect) {
super.draw(dirtyRect)
if (self.enclosingMenuItem?.isHighlighted)! {
// never triggered
}
}
我使用xib来创建我的menuBar对象,并将一个类链接到它,其中包含以下代码来添加新项:
menuItem = NSMenuItem()
menuItem.target = self
menuItem.isEnabled = true
view = MenuBarItem(frame: NSRect(x: 0, y: 0, width: 230, height: 28))
view.delegate = self
view.setupWith(title: "", lastRun: "", running: false)
menuItem.view = view.view
statusMenu.insertItem(menuItem, at: 1)
正常的菜单项可以正常工作,但当鼠标悬停在自定义视图上时,出现问题。请看下图:和。我已经无计可施了,需要任何帮助,谢谢。
NSTrackingArea
。我原以为只需要处理操作,但显然还需要用它来突出显示视图。 - vadian