UIPickerView 辅助功能 VoiceOver 问题

2023-12-30

启用 VoiceOver 后,无论我们滑动到哪一行,UIPickerView 的画外音始终显示“#Item 1 of #TotalNumberOfItems”。 以编程方式,所有元素都会使用正确的选定索引进行更新,但 VoiceOver 始终显示“#Item 1 of #TotalNumberOfItems”

请告诉我是否有人在 PickerView 中遇到过这个问题?

一些观察:

  1. 如果我们离开应用程序一段时间然后滑动,索引会正确发音一次,然后同样的问题仍然存在
  2. 如果我们在滑动后点击选择器行,索引会正确发音
  3. 每次我们滑动行时,didSelect 都会被调用两次。
  4. 日期选择器工作正常
  5. 默认提醒应用程序有一些 PickerViews,画外音按预期工作。 (虽然当我们上下滚动时发现索引详细信息不正确)
@implementation ViewController
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        self.normalPicker.backgroundColor = [UIColor blackColor];
        self.categories = [[NSMutableArray alloc] initWithObjects:@"Apple", @"Bat", @"Cat", @"Dog", @"Elephant", @"Fish", @"Goat",@"Hen", nil];
    }
    
    - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
    {
        return 1;
    }
    - (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
    {
        return self.categories.count;
    }
    
    - (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
        NSLog(@"DidSelect: Row = %@", self.categories[row]);
    }
    
    - (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view {
        UILabel *label = nil;
        if (view == nil) {
            label = [UILabel new];
            label.adjustsFontSizeToFitWidth = NO;
            label.textAlignment = NSTextAlignmentCenter;
            label.textColor = [UIColor redColor];
        } else {
            label = (UILabel *) view;
        }
    
        NSString *text = self.categories[row];
        label.text = text;
        return label;
    }
    
    @end

找到了同样的解决方法。发布公告,包括附加到实际字符串的索引。

-(void) pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{...
    UIAccessibilityPostNotification(UIAccessibilityAnnouncementNotification, voiceOverText);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UIPickerView 辅助功能 VoiceOver 问题 的相关文章

  • 修补应用内购买黑客;卡在第四步

    正如我们许多人所知 苹果最近出现了一种情况 黑客可以免费获得任何应用内购买 苹果最近发布了这个文件 http developer apple com library ios releasenotes StoreKit IAP Receipt
  • Swift Generics 在使用继承时不会实例化泛型

    我有课Alpha and Berry class Alpha class Berry Alpha 我有一个使用继承及其泛型的函数 func myFunc
  • NSString – 静态还是内联?有性能提升吗?

    如果我写的话会有任何性能提升吗 NSString helloStringWithName NSString name static NSString formatString Hello return NSString stringWith
  • 打乱 NSMutableArray 而不重复并显示在 UIButton 中

    在我看来 我有 12 个按钮 一个数组包含 6 个名称 我想在其中打印数组名称UIButton标题 这是我的代码 texts NSMutableArray alloc initWithObjects 1 2 3 4 5 6 nil UIBu
  • iPhone 应用程序中的异步、同步、线程

    我正处于一个应用程序的设计阶段 该应用程序将利用 REST Web 服务 并且在使用异步 同步和线程方面遇到了困境 这是场景 假设您有三个选项可供深入研究 每个选项都有自己的基于 REST 的资源 我可以使用同步请求延迟加载每个请求 但这会
  • 如何在 Firebase 控制台中使用 Apple 新的 APN .p8 证书

    随着最近 Apple 开发者帐户的升级 我面临着一个困难 在尝试创建推送通知证书时 它为我提供了 p8 证书 而不是可以导出到 p12 的 APNs 证书 Firebase 控制台仅接受 p12 证书 那么我如何从这些新的 p8 证书中获取
  • 如何使用 NSUserDefaults 在 Swift 中存储自定义类的数组?

    我有一个名为的自定义类Person当某人输入信息时 它会存储有关某人的各种属性 class Person Person dictionary variable var name String var age String var html
  • 带操作按钮的颤动本地通知

    我在我的 flutter 项目中尝试了 flutter 本地通知插件 它在简单通知上工作正常 但我需要带有操作按钮的通知功能 请帮助我或建议我实现此功能 不幸的是 flutter local notifications 插件尚不支持操作按钮
  • 在 Xcode 5 中重命名 iOS 项目[重复]

    这个问题在这里已经有答案了 我需要重命名一个 iOS 项目 有没有办法在不开始一个全新项目的情况下做到这一点 我发现的所有其他信息都与 Xcode 4 或旧版本相关 这些方法似乎使项目崩溃 我在尝试任何名称更改之前创建了一个快照 在 Xco
  • 更改组织以使用 Xcode 9 在 iTunes Connect 上上传二进制文件

    我在 Xcode9 上配置了多个团队 当我尝试将二进制文件上传到 Xcode 9 上的 iTunes Connect 时 没有更改团队的选项 并且出现以下错误 ERROR ITMS 4088 来自苹果开发者论坛的解决方案 1 正常存档2 窗
  • 覆盖层不与 UITableView 一起滚动 - iOS

    我有一个 UITableView 类 它使用以下方法在转到下一个屏幕时调用加载覆盖 问题是这个加载屏幕不随列表滚动 所以如果你滚动一点并单击某些东西 加载屏幕不会显示 因为它位于顶部 如何让加载屏幕始终保持在 UITableView 的顶部
  • 在 XCode 中链接静态 ObjC 库的过程

    我正在尝试链接到静态库 但不断收到链接器错误 我发现了一些发布示例的网站 但我无法看到我做错了什么 首先 我创建一个链接到我的库的项目 添加 gt 现有文件找到我的 xcodeproj 文件选择 将项目复制到目标组文件夹 选择我的宿主项目作
  • 将 SSLSetEnabledCiphers 与 AFNetworking 结合使用来禁用弱密码

    我正在尝试禁用一些密码 弱 例如单个 DES 单个 DES 40 位等 我尝试过使用这段代码在 Cocoa 中使用 CFSocket CFStream 时如何设置 SSL 密码 https stackoverflow com questio
  • 如何使用 Swift 使用 TouchID?

    Apple 为 iOS 8 的 TouchID 实现提供的文档采用 Objective C 语言 有 Swift 版本吗 Objective C IBAction touchIDAvailable UIButton touchIDAvail
  • 推送动画,没有阴影和停电

    我有一个简单的iOS NavigationController基于应用程序 二UICollectionViews 相继 如果元素打开 第一个合集 被点击时 第二集 将被打开 非常简单 重要的提示 Both UICollectionViews
  • 在 iOS 中,如何创建一个始终位于所有其他视图控制器之上的按钮?

    无论是否呈现模态或用户执行任何类型的转场 有没有办法让按钮在整个应用程序中 始终位于顶部 而不是屏幕顶部 有什么方法可以让这个按钮可拖动并可捕捉到屏幕上吗 我正在以苹果自己的辅助触摸作为此类按钮的示例 您可以通过创建自己的子类来做到这一点U
  • 哪些 Flutter 插件或功能可以利用外部 iOS/Android 显示器来显示与主显示器不同的内容

    我正在构建一个跨平台应用程序 需要在外部显示器上显示不同的视图 通常通过连接到 LCD 投影仪的 HDMI 适配器电缆连接 Flutter 是否能够在内置的外部显示器上显示不同的屏幕 在现有的 Flutter 插件中还是使用现有的 Flut
  • 在 iOS 7 Safari 中,如何区分通过边缘滑动与后退/前进按钮的 popstate 事件?

    在 iOS 7 Safari 中 现在有两种后退 前进导航方式 使用底部的传统后退 前进按钮箭头或从屏幕边缘滑动 我正在使用动画在 ajax 应用程序中的页面之间进行转换 但如果用户通过边缘滑动进行导航 我不想触发该转换 因为这本身就是一个
  • PFQueryTableViewController 错误

    我正在遵循在线教程 使用 Parse 作为后端创建照片共享应用程序 我已经运行了两次教程 两次都从头开始创建应用程序 但在同一位置仍然出现相同的错误 我到处寻找解决方案 但仍然没有运气 我正在使用 PFQueryTableViewContr
  • UIView晃动动画

    我试图在按下按钮时使 UIView 摇动 我正在调整我找到的代码http www cimgf com 2008 02 27 core animation tutorial window shake effect http www cimgf

随机推荐

  • 如何拦截和修改任何对象的特定属性

    对于任何未知数量的对象 我想要拦截并更改某些属性 如果需要 我尝试过 getter 和 setter 但我只能实现接近我想要的目标 并且只能针对已知的对象 以下是我想要实现的目标的示例 在我的范围 闭包之外创建的对象 正如您所看到的 这些是
  • 重定向前的时间延迟

    我为我的网络应用程序创建一个注册页面 该应用要求用户成功注册新帐户后 页面会显示 注册成功 的消息 然后等待5秒才切换到登录页面 我用了Thread Sleep 5000 它等待 5 秒 但不显示消息 谁能帮我 void AccountSe
  • 基于另一个更新的列更新列

    我的问题与单个更新语句中的更新顺序有关 我观察到 当我使用 a 设置变量时SELECT声明 变量是按顺序设置的 例如 SELECT Test1 2 Test2 Test1 1 在此刻 Test1将2 and Test2将3因为集合操作是按顺
  • std::pair<> 的默认构造函数是否将基本类型(int 等)设置为零?

    写完后 std pair
  • Android 浏览器应用程序对 URL 的最大长度有限制吗?

    有谁知道 Android 浏览器在 GET URL 中接受的字符数是否有最大限制 我假设任何限制都会转化为其他基于 WebKit 的浏览器 例如 iPhone 等 但如果有人有不同的了解 对此进行澄清也很好 None
  • Webpack 在编译 TypeScript 代码失败时导致 gulp watch 崩溃

    我正在运行一个 gulp watch 任务 它正在编译我的前端应用程序 当我遇到打字稿错误时 只是因为我太早点击保存 整个过程崩溃 我必须手动重新启动它 我希望 webpack 和 typescript 编译器只报告错误 只要它们在监视模式
  • 是否可以在 BigQuery 中将外部表转换为本机表?

    我已经从 Google Cloud Storage 创建了一个表 文件路径以 gs 开头 即使尝试多次后 我也无法将其创建为本机 我只有在将表选项设置为本机后才成功 后来我就可以成功查询到这个表了 但是 我需要执行以下操作 向表中添加一列
  • s3可容纳的最大连接数

    我正在学习亚马逊网络服务 我只是想知道 Amazon S3 在不崩溃的情况下可以同时保持的最大连接数 大约 是多少 理论上这是无限的 为了实现这一目标 他们使用了他们在此处解释的分区方案 http docs aws amazon com A
  • Xcode 无法读取当前工作目录中项目特定的 .lldbinit

    我想设置项目特定的 lldbinit 文件 以便 所有内容 都处于版本控制之下 并且可以在新计算机中轻松设置 然而似乎我只能读取 lldbinit 文件而不是任何 git project lldbinit 文件 LLDB手册说 lldb 将
  • Twitter4j。通过#hashtag进行查询和过滤帖子

    我正在尝试将 Twitter 使用 Twitter4j 集成到我的 Android 应用程序中 但我有一些顾虑 问题 我想检索具有特定 hashtag 的推文 例如 sxbsw2011 这是我当前正在使用的代码 Query query ne
  • 从绝对路径中提取相对路径

    这是一个看似简单的问题 但我很难以干净的方式完成它 我有一个文件路径如下 这个 是 一个 绝对 路径 到 我的 文件的 位置 我需要的是从上面给定的路径中提取 of my file 因为这是我的相对路径 我的想法如下 String abso
  • 需要解释一下保存分区表的kdb/q脚本

    我试图从以下位置理解这段代码 https code kx com q kb loading from large files 自己定制它 例如按小时 分钟 滴答数等分区 cat fs q d Q extension of Q dpft to
  • 如何在 Go 中使用不记名令牌发出请求

    我需要向 API 发出 GET 请求 并在授权请求中包含不记名令牌 我怎样才能在 Go 中做到这一点 我有以下代码 但没有成功 package main import io ioutil log net http func main url
  • 如何定义自定义源集而不在 Gradle 中显式定义其路径?

    说明书上是这么写的 IE 那src sourceSet java是 给定源集的 Java 源 的默认路径 如何利用这个 假设我想创建源集demo 我可以写吗 sourceSets demo java srcDir src demo java
  • 如何使用 Firestore 获取当前登录用户的文档? [复制]

    这个问题在这里已经有答案了 我的 Firestore 中有这个结构 我希望登录的用户能够获取所有图像 URL 以及与该用户 ID 关联的其他字段 例如名称 价格和描述 此信息将被加载到 recyclerView 中 这是项目模型 packa
  • 计算点向量的平均值

    我在 OpenCV 中有一个二维点的向量 std vector
  • 如何在 jquery ui 对话框中提交表单并显示其响应

    你好 我正在使用 jquery ui 对话框并尝试使用 ajax 提交表单并显示其响应 直到表单对话框和 ajax 请求其工作正常 但不知道如何在同一对话框中显示其响应 任何建议都会帮助我 假设您有以下标记 div style displa
  • 如何禁用漂亮照片?

    我现在如何启用prettyphoto 但问题是如何禁用 这里我启用了 PrettyPhoto document ready function a rel prettyPhoto prettyPhoto social tools false
  • Facebook 访问令牌无法扩展

    我正在使用 facebook android sdk 我刚刚从 github 下载了它 我了解访问令牌仅在非常有限的时间内有效 并且每次应用程序启动时都需要按照文档中的描述进行扩展 https developers facebook com
  • UIPickerView 辅助功能 VoiceOver 问题

    启用 VoiceOver 后 无论我们滑动到哪一行 UIPickerView 的画外音始终显示 Item 1 of TotalNumberOfItems 以编程方式 所有元素都会使用正确的选定索引进行更新 但 VoiceOver 始终显示