响应式滚动给我带来了很多问题。它工作时很好,但有时会滞后很多,尤其是在Chrome中。
是否有人找到一种禁用响应式滚动并使滚动行为类似于10.8的方法?全局或按应用。
在“优化OS X上的绘图和滚动”的WWDC视频中,Apple工程师使用看起来像AppleScript文件的文件来全局禁用响应式滚动,因此可以,但我不知道如何做到。
响应式滚动给我带来了很多问题。它工作时很好,但有时会滞后很多,尤其是在Chrome中。
是否有人找到一种禁用响应式滚动并使滚动行为类似于10.8的方法?全局或按应用。
在“优化OS X上的绘图和滚动”的WWDC视频中,Apple工程师使用看起来像AppleScript文件的文件来全局禁用响应式滚动,因此可以,但我不知道如何做到。
Answers:
首先,我将其发布为可能有用的信息,而不是解决方案。可能会在正确的方向取得成功。
我在OSX的新增功能中发现了这一点,该功能解释了响应式滚动的功能以及工作原理。
底部还有一条注释,说明如何出于测试目的针对每个应用程序禁用它。
但是我在自己的内置应用程序或其他任何应用程序中都看不到此选项。
响应滚动
响应式滚动是AppKit的增强功能,可使滚动更流畅。这涉及到应用程序绘制内容的方式的两项重大更改:
滚动视图要求其子视图在其常规视图区域之外绘制其他内容,以便可以立即将内容用于滚动目的。此额外的窗口后备存储在可清除的内存中,以最大程度地减少额外的分页。滚动线程尝试以每秒60帧的速度重新绘制视图,但是如果应用程序无法跟上,它将退出。滚动事件在后台线程上处理。大多数应用会自动收到这种响应式滚动行为。但是,某些视图必须显式选择加入,包括层支持的视图,覆盖drawRect:的自定义滚动视图或剪辑视图子类,基于NSSurface的文档视图,透明文档视图以及覆盖lockFocus方法的文档视图。
对于自动启用响应滚动的视图,行为更改对于您作为开发人员应该是完全透明的。但是,如果您的应用在滚动时出现任何异常行为,请提交错误。
注意:您可以通过在Finder中选择应用程序上的文件>获取信息来暂时禁用响应式滚动以进行测试。更改设置后,您必须退出并重新启动应用程序。有关更多详细信息,请参阅OS X v10.9的AppKit发行说明。
我看了一下appkit发行说明-Responsive Scrolling,其中有更详细的介绍。
在某些情况下,应停止将响应式滚动分配给应用程序。其中之一是:
该应用程序在10.7或更早版本上链接(该应用程序必须在Mountain Lion或更高版本上链接以支持此功能)
我要说的是,如果该应用程序还可以在10.6上运行,则不会添加此功能。
Chrome AFAIK将在10.6以上版本上运行。但是我怀疑下载器正在为您当前的系统下载一个版本。
可能仅为10.6构建的版本会在Chrome中禁用它。
更新*但正如bogdansrc在评论中指出的那样。没有10.6的单个版本
我确实尝试过:
defaults write ~/Library/Preferences/com.google.Chrome isCompatibleWithResponsiveScrolling -bool NO
但是isCompatibleWithResponsiveScrolling是用于nsview子类的,我并不真正希望它能工作。我也没有遇到这个问题,所以我无法分辨。
我还需要:
1)重置PRAM(关闭后,按住CMD + ALT + P + R直至第二锣打开),如何在您的Mac上:https : //support.apple.com/kb/ht1379
2)重置SMC(关闭后,按住SHIFT + CTRL + ALT(选项)+电源打开)如何在Mac上:https : //support.apple.com/kb/HT3964
下面的设置应该是:具有惯性
它可能不是永久性的解决方案,但是与系统重新启动相比,它是快速而舒适的hack。
它为我工作。抱歉,屏幕截图是波兰语。无论如何,由于图像/图标,您应该对其进行管理。
首先从系统偏好设置中打开辅助功能
然后在触摸板/鼠标设置中,单击触摸板按钮
然后玩/不玩惯性。
我在推特上问约翰·西拉库萨(John Siracusa):
https://twitter.com/siracusa/status/394988398009925632632
@siracusa yu fnd有办法消除特立独行的“响应式滚动”吗?感觉很奇怪
他的回答很简洁:
https://twitter.com/siracusa/status/394988398009925632632
@davidmarsh号
我想这并不意味着您不能禁用它,只是约翰不知道将其关闭的方法。