我使用Xcode制作一个具有NSImageView的应用程序,我已经将其制作成NSScrollView(我认为),通过在我的.xib中选择它,转到Xcode中的编辑器菜单然后嵌入到>中。滚动视图。
我的NSScrollView中的图像比打开的窗口大,我可以使用滚动条滚动,甚至打开autoscroll:
方法中的mouseDragged:
函数。
我希望能够简单地平移图像,而不会使用mouseDragged:
触及屏幕边缘。到目前为止,我的panning.m(NSImageView的子类)中的mouseDragged:
代码是这样的:
-(void)mouseDragged:(NSEvent *)theEvent{
NSPoint p = [theEvent locationInWindow];
[self scrollRectToVisible:NSMakeRect(p.x - self.visibleRect.origin.x, p.y - self.visibleRect.origin.y, self.visibleRect.size.width, self.visibleRect.size.height)];
[self autoscroll:theEvent];
}
这在某种程度上有效,但是有很多抖动。也许是因为我没有限制界限?
我想知道我是在正确的轨道上还是有更好/更有效的方式。
感谢任何帮助。
干杯。