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

标签 macos voiceover custom-view nsmenuitem

我在 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/

相关文章:

wpf - WrapPanel WPF 上不显示水平滚动

macos - Chrome渲染颜色怪异

ios - 如何为 iCarousel 提供可访问的滑动操作

ios - 如何创建左/右音频平衡 slider 并让画外音读出自定义值?

ios - 如何从 VoiceOver 中排除 UIButton?

java - Android 自定义 View - java.lang.RuntimeException android.view.InflateException

java - 创建自定义 View : how can I extend a class and access the base class's private member variables?

macos - Docker & Postgres : Failed to bind tcp 0. 0.0.0:5432 地址已在使用中

android - Cordova/Phonegap Android 目标 : not installed [Android Studio Installed]

macos - 如何在 Mac OS X 10.6 上将 clang 更新到 3.3