我在NSStatusBar
中添加了NSMenu
。我使用自定义视图进行首次NSMenuItem
,setView
:方法包含progressIndicator
。所有其他项目都是默认的。
这里的问题是 VO(残疾人配音)。当我从设置 -> 辅助功能 -> VoiceOver 启用 VO 并按option+command+M+M
时,它会聚焦在状态栏中的菜单上。现在使用左右键导航到我的应用程序,然后按打开 NSMenu 的向下键。
我可以下来选择我的选项,但不能从这里更改为其他应用程序(wifi,日期)。当我删除此自定义视图项目时,它工作正常。我也观察到彼此的应用程序相同。
我是否需要为自定义视图设置任何属性。
编辑
我在 swift 中创建了示例应用程序。
let menu = NSMenu()
let menuitem1 = NSMenuItem()
let view1 = NSView(frame: NSRect(x: 0, y: 0, width: 100, height: 30))
menuitem1.view = view1
menu.addItem(menuitem1)
menu.addItem(NSMenuItem(title: "Print Quote", action: #selector(AppDelegate.printQuote(_:)), keyEquivalent: "P"))
menu.addItem(NSMenuItem.separator())
menu.addItem(NSMenuItem(title: "Quit Quotes", action: #selector(NSApplication.terminate(_:)), keyEquivalent: "q"))
即使在这个简单的应用程序中,我也无法让 VO 正常工作。 步骤
VO (控制+选项) + M + M
VO + 空间来选择我们的应用程序选项。
VO + 向下键可在内部导航。
然后尝试在其他应用程序中向左或向右移动。它不会切换到其他应用程序。
编辑 2观察是当我首先选择自定义视图并尝试切换到它工作的其他应用程序时。但是一旦我从自定义视图中选择普通菜单项,它就会出现一些问题。我找到的唯一解决方案是拥有所有默认菜单项或具有自定义视图的所有项。
对于表格中显示的NSMenuItem
,我可以在newAutoLayoutView
上添加accessibilityLabel
。
NSView *cellView = [NSView newAutoLayoutView];
cellView.accessibilityLabel = @"Voiceover Tab Name";