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

如何判断iOS系统中辅助功能的Full Keyboard Access是否启用?

判断iOS系统中Full Keyboard Access是否启用的方法

确实UIAccessibility框架里没有像UIAccessibility.isVoiceOverRunning那样直接的API,但可以通过以下两种方式实现判断:

iOS 13及以上版本(推荐)

苹果在iOS 13中新增了UIAccessibility.isKeyboardNavigationEnabled属性,这个属性直接对应Full Keyboard Access的启用状态,可直接调用:

import UIKit

let isFullKeyboardAccessOn = UIAccessibility.isKeyboardNavigationEnabled

同时,你可以监听UIAccessibility.keyboardNavigationStatusDidChangeNotification通知,实时获取该功能的状态变化:

NotificationCenter.default.addObserver(forName: UIAccessibility.keyboardNavigationStatusDidChangeNotification, object: nil, queue: .main) { _ in
    let currentStatus = UIAccessibility.isKeyboardNavigationEnabled
    // 处理状态变化逻辑
}

iOS 12及更早版本(非官方)

对于旧系统,只能通过读取系统偏好设置的方式判断,但这种方法依赖系统内部键名,存在后续版本失效的风险:

import Foundation

func checkFullKeyboardAccessStatus() -> Bool {
    let userDefaults = UserDefaults.standard
    // 对应Full Keyboard Access的内部偏好键
    return userDefaults.bool(forKey: "KeyboardAssistant")
}

注意:非官方的偏好键读取方式不受苹果官方支持,若系统更新修改键名,该方法会失效,建议优先适配iOS 13+版本使用官方API。

内容的提问来源于stack exchange,提问作者Mitch Cohen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 19:48:23