accessibilityLabel и accessibilityHint свойства не всегда загружаются из NIB

Одно хорошее свойство о 0xCCCCCCCC значения заливки - то, что в x86 блоке, код операции 0xCC код операции int3 , который является прерыванием точки останова программного обеспечения. Так, если Вы когда-нибудь пытаетесь выполнить код в неинициализированной памяти, это было заполнено тем значением заливки, Вы сразу поразите точку останова, и операционная система позволит Вам присоединить отладчик (или уничтожить процесс).

6
задан Sam McCall 7 September 2009 в 08:23
поделиться

1 ответ

Хм, если я открою 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);

Обратите внимание на причудливый ключ приложения, я еще не уверен, откуда взялось это значение (мои знания сборки 386 очень слабые!), Но я могу передать этот ключ в CFPreferencesSetAppValue, и он работает, по крайней мере, на симуляторе (я не в данный момент у меня нет доступа к реальному устройству).

Также это включит доступность приложения для всех приложений (поскольку оно записывает его в глобальный список). Я могу установить флаг из main (), если значение должно быть снова установлено на false после запуска приложения.

3
ответ дан 17 December 2019 в 18:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: