如何检测 iPad 上是否存在外接键盘?

How can I detect if an external keyboard is present on an iPad?(如何检测 iPad 上是否存在外接键盘?)
本文介绍了如何检测 iPad 上是否存在外接键盘?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

有没有办法检测外部(蓝牙或 USB)键盘是否连接到 iPad?

Is there a way to detect if an external (bluetooth or usb) keyboard is connected to the iPad?

推荐答案

一种间接且 SDK 安全的方法是让文本字段成为第一响应者.如果存在外部键盘,则不应发布 UIKeyboardWillShowNotification 本地通知.

An indirect and SDK-safe way is to make a text field a first responder. If the external keyboard is present, the UIKeyboardWillShowNotification local notification shall not be posted.

更新:自 iOS 9 起不再适用,但您可以使用键盘尺寸来确定是否涉及硬件或软件键盘.请参阅如何可靠地检测是否在 iOS 9 上连接了外部键盘?了解详情.

Update: This is no longer true since iOS 9, however you may use the keyboard dimensions to determine if a hardware or software keyboard is involved. See How to reliably detect if an external keyboard is connected on iOS 9? for details.

您可以收听 "GSEventHardwareKeyboardAttached" (kGSEventHardwareKeyboardAvailabilityChangedNotification) Darwin 通知,但这是一个私有 API,因此如果您使用此 API,您的应用可能会被拒绝.要检查外部硬件是否存在,请使用私有 GSEventIsHardwareKeyboardAttached() 函数.

You can listen to the "GSEventHardwareKeyboardAttached" (kGSEventHardwareKeyboardAvailabilityChangedNotification) Darwin notification, but this is a private API, so it's possible your app will get rejected if you use this. To check if the external hardware is present, use the private GSEventIsHardwareKeyboardAttached() function.

UIKit 监听这个并相应地设置 UIKeyboardImpl.isInHardwareKeyboardMode 属性,但这又是私有 API.

UIKit listens to this and sets the UIKeyboardImpl.isInHardwareKeyboardMode property accordingly, but again this is private API.

这篇关于如何检测 iPad 上是否存在外接键盘?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

No resource found that matches the given name: attr #39;android:keyboardNavigationCluster#39;. when updating to Support Library 26.0.0(找不到与给定名称匹配的资源:attr android:keyboardNavigationCluster.更新到支持库 26.0.0 时) - IT屋-程序员软
How to resize UITextView on iOS when a keyboard appears?(出现键盘时如何在iOS上调整UITextView的大小?)
How to reliably detect if an external keyboard is connected on iOS 9?(如何可靠地检测 iOS 9 上是否连接了外部键盘?)
How to mimic Keyboard animation on iOS 7 to add quot;Donequot; button to numeric keyboard?(如何在 iOS 7 上模拟键盘动画以添加“完成数字键盘的按钮?)
How do I dismiss the iOS keyboard?(如何关闭 iOS 键盘?)
Is possible to simulate touch event using an external keyboard on ios jailbroken?(是否可以在 ios 越狱后使用外部键盘模拟触摸事件?)