gpt4 book ai didi

macos - 旁白在状态栏中的 NSMenu 中不起作用,带有 NSMenuItem 的自定义 View

转载 作者:行者123 更新时间:2023-12-05 07:35:06 26 4
gpt4 key购买 nike

我在 NSStatusBar 中添加了 NSMenu。我为第一个 NSMenuItem 使用了自定义 View ,并使用 setView: 方法来包含 progressIndicator。所有其他项目都是默认的。

这里的问题是 VO(残疾人配音)。当我从设置 -> 辅助功能 -> VoiceOver 启用 VO 并按 option+command+M+M 时,它会聚焦于状态栏中的菜单。现在使用左右键导航到我的应用程序,然后按下打开 NSMenu 的键。

我可以下来选择我的选项,但不能从这里更改到其他应用程序(wifi、日期)。当我删除这个自定义 View 项目时,它工作正常。我在另一个应用程序中也观察到了同样的情况。

我是否需要为自定义 View 设置任何属性。

编辑

我在 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 正常工作。步骤

  1. VO(控制+选项)+ M + M

  2. VO + 空格键选择我们的应用选项。

  3. VO + 向下键在里面导航。

  4. 然后尝试在其他应用中向左或向右移动。它不会切换到其他应用程序。

    编辑 2观察是当我首先选择自定义 View 并尝试切换到它工作的其他应用程序时。但是一旦我从自定义 View 中选择了普通的菜单项,它就会遇到一些问题。我找到的唯一解决方案是使用所有默认菜单项或使用自定义 View 的所有项目。

最佳答案

对于表格中显示的 NSMenuItem,我可以在 newAutoLayoutView 上添加 accessibilityLabel

NSView *cellView = [NSView newAutoLayoutView];
cellView.accessibilityLabel = @"Voiceover Tab Name";

关于macos - 旁白在状态栏中的 NSMenu 中不起作用,带有 NSMenuItem 的自定义 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49727796/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com