GCMouse.mice() 总是空的,尽管我的鼠标在工作
GCMouse.mice() is always empty, despite my mouse working
我在 iPadOS 14.
上使用新的 GCMouse.mice() API
我的蓝牙鼠标 (Logitech MX Master 2S) 被清楚地识别了,我可以用它导航 OS 甚至我的应用程序。如果我转到 设置 → 辅助功能 → AssistiveTouch → 设备,我的鼠标就在那里。
然而,无论我在什么时候调用GCMouse.mice()
,结果都是一个空列表,GCMouse.current
总是nil。
同样,我监听 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
[]
[]
[]
[]
[]
...
有什么我想念的吗?是否有我不知道的权利?
好的,这似乎是罗技 MX Master 2S 鼠标的硬件问题。另一位开发人员使用不同的蓝牙鼠标尝试了我的代码,发现 GCMouse.mice()
得到了很好的填充。 还有一位 开发人员在使用 Logitech MX Master 2S 鼠标的不同设备上尝试了我的代码,并看到了与我看到的相同的行为。
所以,请注意:至少 一些 蓝牙鼠标在新 iPadOS 14 GCMouse
API 周围表现不稳定。这是 iOS 14.0.
我在 iPadOS 14.
上使用新的 GCMouse.mice() API我的蓝牙鼠标 (Logitech MX Master 2S) 被清楚地识别了,我可以用它导航 OS 甚至我的应用程序。如果我转到 设置 → 辅助功能 → AssistiveTouch → 设备,我的鼠标就在那里。
然而,无论我在什么时候调用GCMouse.mice()
,结果都是一个空列表,GCMouse.current
总是nil。
同样,我监听 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
[]
[]
[]
[]
[]
...
有什么我想念的吗?是否有我不知道的权利?
好的,这似乎是罗技 MX Master 2S 鼠标的硬件问题。另一位开发人员使用不同的蓝牙鼠标尝试了我的代码,发现 GCMouse.mice()
得到了很好的填充。 还有一位 开发人员在使用 Logitech MX Master 2S 鼠标的不同设备上尝试了我的代码,并看到了与我看到的相同的行为。
所以,请注意:至少 一些 蓝牙鼠标在新 iPadOS 14 GCMouse
API 周围表现不稳定。这是 iOS 14.0.