2009-11-20 23 views

答えて

10

特定の位置へのスクロールに関するScroll View Programming Guideのセクションをお読みください。そこに上または下の例があります。 NSViewの途中から原点を計算するように数学を変更するだけです。次のようなものがあります。

-(void)scrollToCenter:(NSScrollView*)scrollView 
{ 
    const CGFloat midX = NSMidX([[scrollView documentView] bounds]); 
    const CGFloat midY = NSMidY([[scrollView documentView] bounds]); 

    const CGFloat halfWidth = NSWidth([[scrollView contentView] frame])/2.0; 
    const CGFloat halfHeight = NSHeight([[scrollView contentView] frame])/2.0; 

    NSPoint newOrigin; 
    if([[scrollView documentView] isFlipped]) 
    { 
     newOrigin = NSMakePoint(midX - halfWidth, midY + halfHeight); 
    } 
    else 
    { 
     newOrigin = NSMakePoint(midX - halfWidth, midY - halfHeight); 
    } 

    [[scrollView documentView] scrollPoint:newOrigin]; 
} 
+4

これは、ドキュメントビューがスクロールビューより小さい場合は機能しません。ドキュメントビューは左下(または反転している場合は左上)に固定されます。 –

関連する問題