【发布时间】:2018-08-07 12:01:57
【问题描述】:
可能无法使用自定义UIGestureRecognizer 测量触摸压力,因为我们无法直接访问系统键盘的视图 [1]。如果使用自定义inputViewController 可以实现,但这不是我的选择。我想存储每个键的按键保持时间和按键压力。你知道怎么做吗?
编辑:[1] 我说“我们不能直接访问系统键盘的视图。”但实际上我们可以:
UIRemoteKeyboardWindow > InputSetContainerView > InputSetHostView.
我认为改进 Nirav Bhatt 的答案可能会解决这个问题,但它会禁用键盘视图上的触摸功能。当我触摸一个键时,它会输出触摸力,但相应的字母不会输入到文本字段中。
【问题讨论】:
-
你能继承系统键盘,覆盖 touchesBegan,在那里获得力量,然后调用
super.touchesBegan(..)吗?不过,你会以某种方式让 Swift 返回正确的 Keyboard 类。并为类提供正确的位置来传递可见的力,或者可能是静态函数。 -
您还可以创建一个代理来实现 touchesBegan 等,您可以在其中调用 UIRemoteKeyboardWindow,但同时将看到的力输送到您想要的位置。并在 hitTest 而不是键盘窗口中返回所述代理。
标签: ios objective-c swift keystroke