【发布时间】:2012-05-02 16:31:42
【问题描述】:
我有一个 NSView 作为 NSScrollView 的 documentView。我还有一个 NSImageView 作为 NSView 的子视图。图像动态改变大小,因此滚动条在不同时间变为活动/不活动。图像更改后,我想滚动到图像上的某个点。从 NSView 的 drawRect: 方法中,我调用 [[myScrollView contentView] scrollToPoint: myPoint];
滚动条会更新,图像会按我的意愿显示,但是一旦滚动图像,就会出现双图像或图像的一部分被截断。任何帮助,将不胜感激。谢谢。
【问题讨论】:
-
你为什么在
-drawRect:内滚动?除了绘图,你不应该做任何事情,绝对不能做任何会调用任何-setNeedsDisplay...方法的东西。 -
我下一次解决这个问题的尝试是在 -drawRect 方法之外设置图像和 documentView 框架。我试试看
-
你是对的。一旦我将 setFrame、setOrigin、scrollToPoint 等方法从 -drawRect 中移出,一切都运行良好。非常感谢!
标签: cocoa nsimage nsscrollview