像iPhone那种用手指拖拽形式的页面卷动在某些情况下很有用。如果是一个比较大的图形或者列表,显然这种滚动形式更容易看清楚。

您只要阅读本文就知道如何简单地实现了。
 
 

 
@implementation Blah
 
 
- (void) mouseDown: (NSEvent *) event
{
    grabOrigin = [event locationInWindow];
           
    NSClipView *contentView;
    contentView = (NSClipView*)[layerView superview];
           
    scrollOrigin = [contentView bounds].origin;
           
} // mouseDown
 
 
- (void) mouseDragged: (NSEvent *) event
{
    NSPoint mousePoint;
    mousePoint = [event locationInWindow];
           
    float deltaX, deltaY;
    deltaX = grabOrigin.x - mousePoint.x;
    deltaY = mousePoint.y - grabOrigin.y;
           
    NSPoint newOrigin;
    newOrigin = NSMakePoint (scrollOrigin.x + deltaX,
                             scrollOrigin.y + deltaY);
           
    [layerView scrollPoint: newOrigin];
           
} // mouseDragged
 
@end // Blah
 
改变鼠标指针的方法是
[[NSCursor closedHandCursor] push];
也可以是 openHandCursor
改回去:
[NSCursor pop];
 
你可以在mouseDragged的时候设置鼠标指针,mouseUp时恢复。这样看起来感觉更好。