ios - GCMouse.mice() 总是空的,尽管我的鼠标工作
问题描述
我在 iPadOS 14 上使用新的GCMouse.mice() API。
我的蓝牙鼠标(Logitech MX Master 2S)被清晰识别,我可以用它导航操作系统甚至我的应用程序。如果我去Settings → Accessibility → AssistiveTouch → Devices,我的鼠标就在那里。
但是,无论我在什么时候调用GCMouse.mice()
,结果都是一个空列表,并且GCMouse.current
始终为零。
同样,我会听,GCMouseDidConnect
但它永远不会触发。
重现:我将此代码添加到AppDelegate.swift
默认项目模板中。
import UIKit
import GameController // new
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
// new:
@objc func showMice() { print(GCMouse.mice()) }
@objc func newMouse(notification: Notification) { print(notification) }
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
// new:
Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(showMice), userInfo: nil, repeats: true)
NotificationCenter.default.addObserver(self, selector: #selector(newMouse), name: NSNotification.Name.GCMouseDidConnect, object: nil)
return true
}
...
在控制台中,我只看到:
2020-09-21 21:52:52.737457+0200 MouseTest[1639:1517093] Metal API Validation Enabled
[]
[]
[]
[]
[]
...
有什么我想念的吗?可能有我不知道的权利吗?
解决方案
好的,这似乎是 Logitech MX Master 2S 鼠标的硬件问题。另一位开发人员用不同的蓝牙鼠标尝试了我的代码,发现GCMouse.mice()
填充得很好。另一位开发人员使用 Logitech MX Master 2S 鼠标在不同设备上尝试了我的代码,并看到了与我看到的相同的行为。
所以,请注意:至少有一些蓝牙鼠标在新的 iPadOS 14 GCMouse
API 周围表现得有些不稳定。这是从 iOS 14.0 开始的。
推荐阅读
- android - Firebase crashlytics 中的应用内消息崩溃?
- sql - SQL查询中添加新列以显示记录是否包含子元素
- python - 尝试从 GA 获取数据,但出现超时错误
- c# - 以编程方式添加自定义文件属性
- ruby-on-rails - 来自参数的rails api中的Rails Active Storage
- javascript - 从 2 个数组中找到一个匹配值,一个数组中存在一个 html 元素-Javascript
- html - 如何将div的末尾定位到容器的左侧
- c# - C# foreach 性能与内存碎片
- javascript - 同时使用和共享公共方法 - 正确的方法?
- javascript - 对 API GATEWAY 的 XMLHttpRequest 不起作用