8
"プレビュー"のようにNSViewをNSScrollViewの中央に配置するにはどうすればよいですか?NSScrollViewの中にNSViewを配置する
"プレビュー"のようにNSViewをNSScrollViewの中央に配置するにはどうすればよいですか?NSScrollViewの中にNSViewを配置する
特定の位置へのスクロールに関する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];
}
これは、ドキュメントビューがスクロールビューより小さい場合は機能しません。ドキュメントビューは左下(または反転している場合は左上)に固定されます。 –