macOS 11 Big Sur 当前版本(beta 1 到 beta 6)有一个错误/功能,使得 NSMenuItem 难以使用自定义视图。具体来说,当菜单项突出显示时,项目的自定义视图不会调用draw(dirtyRect:)。
我通过 NSMenu 委托手动调用 draw(dirtyRect:) 方法,成功绕过了该错误:
func menu(_ menu: NSMenu, willHighlight item: NSMenuItem?) {
if #available(OSX 11.0, *) {
// fix for bug when an item with custom view won't be called to draw the highlighting state
menu.items.filter{ $0.tag == 101 }.forEach{ $0.view?.needsDisplay = true }
}
}
但这并不能解决绘制国家的谜团。 MacOS 11 Big Sur 具有新的 UI 外观。菜单项现在以不同的方式突出显示,其内容周围有圆形框。
我的问题是:我应该手动模拟该圆形框,还是新应用程序套件中有某种默认方式来绘制菜单项的圆形选择?
换句话说,在 macOS 11 Big Sur 中使用自定义视图的 NSmenuItem 的最佳方式是什么?
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)