Программно определить, установлен ли флажок "разрешить доступ для вспомогательных устройств" в приложении Какао
Приложения какао, использующие API-интерфейс NSAccessibility, требуют, чтобы "разрешить доступ для вспомогательных устройств" был проверен на предварительной панели Universal Access. Я видел, как многие приложения выдают предупреждение, если они отключены при запуске. Как программно проверить, включена ли эта функция, чтобы в моем приложении отображалось предупреждение?
2 ответа
Я думаю, что вы ищете AXAPIEnabled()
,
extern Boolean AXAPIEnabled ();
Цитирование документов:
Возвращает, включен ли API доступа.
Возвращает TRUE, если API доступа в настоящее время включен, иначе FALSE.
Вспомогательные приложения не будут работать, если API специальных возможностей не включен или если вызывающий процесс не является доверенным клиентом специальных возможностей. Пользователи могут включить API специальных возможностей, установив флажок "Включить доступ для вспомогательных устройств" в настройках универсального доступа.
В OS X 10.9 Mavericks, AXAPIEnabled()
был объявлен устаревшим
AXIsProcessTrustedWithOptions
можно использовать вместо:
NSDictionary *options = @{(id)kAXTrustedCheckOptionPrompt: @YES};
BOOL accessibilityEnabled = AXIsProcessTrustedWithOptions((CFDictionaryRef)options);
Если вы проходите в YES
за kAXTrustedCheckOptionPrompt
система покажет пользователю полезный маленький диалог со ссылкой на Системные настройки:
"YourApp.app хотел бы управлять этим компьютером с помощью специальных возможностей".