|
|
1
2
我早就知道了,问题是在Scroll上,我做了很多花哨的视图操作,有点像在iPhone上,uiTableView在屏幕上滚动时添加和删除视图。这对性能很好——但是我越是深入到OSX编程中,我就越是意识到这对OSX是错误的(但iPhone的想法是正确的)。 不管怎么说,真正发生的事情,似乎是,当你做一些像滚轮滚动的事情时,滚动事件被发送到鼠标光标下的视图,然后它沿着响应者/视图滚动,直到它到达处理它的某个地方。通常这不是问题,但是随着动量滚动,操作系统实际上只是将更小的滚动轮事件发送到光标下的视图。 在动力开始的时候 . 这意味着,如果在滚动过程中移除视图(因为它会从屏幕或其他地方滚动),则会断开链并停止动量,因为仍在获取滚动轮消息的视图不再位于视图层次结构中。 “简单”的解决方法是不删除最后一个滚动轮事件的视图——即使它在屏幕之外。更好的解决方法(和我一起使用的方法)是不要像使用uiview那样使用nsview,而是使用drawrect来绘制内容。:)这不仅是速度的10亿倍,它还可以通过动量滚动(tm)工作,因为这是OSX期望完成的事情。 跟我重复:osx不是iphoneos。P |
|
|
2
1
如果不设置nsscrollview本身的行滚动和页滚动属性,则会出现奇怪的滚动行为。 除此之外,您还需要一个魔法鼠标来自己测试它,或者发布自定义视图以及包含它的XIB的整个代码。没有它,别人就无法给你提供更多的猜测(如上面所述)。 |
|
|
hockeyman · NSScrollView中的NSOpenGLView? 13 年前 |