has*_*o98 2 macos cocoa scroll objective-c
我无法弄清楚如何实际使用NSScrollview.我将滚动视图对象拖到NSWindow界面构建器中.然后我将一些拖动NSButtons到滚动视图上.我的问题是:
我如何实际向下滚动,例如,原始高度的2倍?
当然,用户可以使用他们的UI自动滚动.我假设你想要做的是以编程方式滚动.
一点背景:An NSScrollView有一个documentView,它是滚动视图显示的一部分的基础视图,以及a clipView,它是屏幕上显示的视图.因此剪辑视图就像是进入文档视图的窗口.要以编程方式滚动,请告诉文档视图在剪辑视图中滚动自身.
关于如何以编程方式滚动,有两个选项:
- (void)scrollPoint:(NSPoint)aPoint - 这会滚动文档,使给定点位于包围它的剪辑视图的原点.- (BOOL)scrollRectToVisible:(NSRect)aRect - 这会将文档滚动到最小距离,以便可以看到整个矩形.注意:这可能根本不需要滚动,在这种情况下它返回NO.因此,举例来说,这是Apple的Scroll View编程指南中有关如何滚动到文档视图底部的示例.假设您的nib文件中有一个IBOutlet被调用的scrollView连接,NSScrollView您可以执行以下操作:
- (void)scrollToBottom
{
NSPoint newScrollOrigin;
if ([[scrollview documentView] isFlipped]) {
newScrollOrigin = NSMakePoint(0.0,NSMaxY([[scrollview documentView] frame])
-NSHeight([[scrollview contentView] bounds]));
} else {
newScrollOrigin = NSMakePoint(0.0,0.0);
}
[[scrollview documentView] scrollPoint:newScrollOrigin];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4678 次 |
| 最近记录: |