You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何检测运行在Mac M1上的iOS应用中touch alternatives是否启用?

检测Touch Alternatives功能状态

情况1:检测应用内的启用状态

如果你是通过在应用的Info.plist中添加com.apple.uikit.inputalternatives字典并设置Enabled为YES来启用该功能,可直接读取Info.plist的对应值确认状态:

if let inputAlternativesDict = Bundle.main.infoDictionary?["com.apple.uikit.inputalternatives"] as? [String: Any],
   let isEnabled = inputAlternativesDict["Enabled"] as? Bool {
    print("应用内Touch Alternatives状态:\(isEnabled ? "已启用" : "未启用")")
}

情况2:检测系统全局的启用状态

目前Apple未提供公开API直接获取系统级Touch Alternatives的状态,可通过读取系统偏好设置间接判断,需注意应用沙盒权限限制:

import Foundation

func isSystemWideTouchAlternativesEnabled() -> Bool {
    let defaults = UserDefaults(suiteName: "com.apple.accessibility")
    return defaults?.bool(forKey: "touchAlternativesEnabled") ?? false
}

// 使用示例
let isEnabled = isSystemWideTouchAlternativesEnabled()
print("系统全局Touch Alternatives状态:\(isEnabled ? "已启用" : "未启用")")

注意:读取系统偏好域可能受沙盒权限限制,macOS下需在Xcode的「签名与功能」中为App Sandbox添加「读取系统偏好设置」权限。此外,该偏好键属于非公开接口,Apple后续版本可能调整,存在兼容性风险。


内容的提问来源于stack exchange,提问作者Jean-Baptiste Delcros

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 13:02:27