前情提要
上次的帖子: https://www.v2ex.com/t/335738
因为嫌 Smoothscroll 收费贵, 所以就自己学着写了一个...
目前效果比 LogitechOption 自带的平滑效果好的多, 不过与 LogitechOption 里面的平滑效果一起开的话会有冲突, 罗技用户记得把 LogitechOptions 里面的那个平滑效果关掉.
目前仅在 10.12.2 和 10.12.3 上测试过. 对, 就是这两周的版本...
说实话调界面花的时间比调算法多, 因为我数学实在是渣, 想不出啥好的平滑算法, 个人感觉这个实现的方法很蠢, 但是出来的效果还算能接受 ...
基本思路
- 从系统的 CGEvent 截取鼠标滚轮事件
- 滚轮事件触发 CVDisplayLink 定时器, 然后在一定的时间内连续发送插值后的鼠标滚动事件
- 到事件后把 CVDisplayLink 停掉, 等下次滚轮事件继续触发