gpt4 book ai didi

iphone - accessibilityLabel 和accessibilityHint 属性并不总是从NIB 加载

转载 作者:行者123 更新时间:2023-12-03 18:46:20 24 4
gpt4 key购买 nike

我的 iPhone 应用程序的 UI 有很多静态标签,我在 Interface Builder 中为它们设置了辅助功能提示。我想以编程方式访问这些内容,以便可以提供帮助气泡 - UILabel 的自定义子类可以识别触摸并显示值为 [selfaccessibilityHint] 的气泡。

但是,[selfaccessibilityHint]返回nil。如果我以编程方式设置该值 [self setAccessibilityHint: @"Hello"],那么我可以从程序中访问该值,但 NIB 中的初始值不可用。

如果我在启动应用程序之前打开辅助功能检查器,则可以通过accessibilityHint 属性获得NIB 文件中的提示。是否有某个标志可以确定系统是否加载这些属性;如果有的话,有什么方法可以设置它吗?

我的备份选项是让我的 Controller 保留对每个 UI 标签的引用并在代码中设置accessibilityHint,但这非常丑陋且麻烦。

最佳答案

嗯,如果我打开 Library/Preferences/com.apple.Accessibility.plist 并将 ApplicationAccessibilityEnabled 从 false 更改为 true,那么它就可以工作。 (该路径位于 ~/Library/Application Support/iPhone Simulator/)

我尝试在 main() 的开头添加此内容:

CFPreferencesSetAppValue(@"AccessibilityEnabled", kCFBooleanTrue, @"com.apple.Accessibility");
CFPreferencesSetAppValue(@"ApplicationAccessibilityEnabled", kCFBooleanTrue, @"com.apple.Accessibility");
CFPreferencesAppSynchronize(@"com.apple.Accessibility");

但是没有成功。 (它将一个文件写入Applications/{UUID}/Library/Preferences/com.apple.Accessibility.plist)

编辑:单步执行 UIKit 代码后,确定辅助功能是否打开或关闭的调用是

CFPreferencesGetBooleanValue(@"ApplicationAccessibilityEnabled", @"/Users/sam/Library/Application Support/iPhone Simulator/User/Library/Preferences/com.apple.Accessibility", NULL);

请注意奇怪的应用程序 key ,我还不确定这个值来自哪里(我对 386 汇编的知识非常薄弱!)但我可以将此 key 传递给 CFPreferencesSetAppValue 并且它可以工作,至少在模拟器上(我目前无法访问实际设备)。

此外,这还将打开所有应用程序的应用程序可访问性(因为它将其写入全局 plist)。如果应用程序启动后该值应设置回 false,我可以从 main() 设置一个标志。

关于iphone - accessibilityLabel 和accessibilityHint 属性并不总是从NIB 加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1388179/

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