【发布时间】:2014-02-18 07:23:05
【问题描述】:
我正在尝试使用以下代码将 NSScrollView 滚动到视图底部:
NSPoint newScrollOrigin;
if ([[self.chatScreen documentView] isFlipped]) {
newScrollOrigin=NSMakePoint(0.0,NSMaxY([[self.chatScreen documentView] frame])-NSHeight([[self.chatScreen contentView] bounds]));
} else {
newScrollOrigin=NSMakePoint(0.0,0.0);
}
self.chatScreen.backgroundColor=[NSColor redColor];
[[self.chatScreen documentView] scrollPoint:newScrollOrigin];
来自这里:Apple doucmentation on scrolling
当我运行我的程序时,它会部分滚动到视图的底部,屏幕显示视图的顶部(默认起始位置),但是当我尝试滚动时,它会跳转到页面底部,其中然后我就可以正常滚动了。
如果我滚动到视图的任何部分,下次它收到更新(触发它跳回底部)时,它看起来好像什么也没发生,直到你尝试滚动,这再次导致它跳转返回页面底部。
提前致谢。
【问题讨论】:
-
听起来像是在不需要的时间触发了一些滚动代码。如果我理解正确,当您尝试手动滚动时它会自动滚动?
-
你从哪里调用这个代码?
-
@Flexicoder 我从一个单独的线程调用代码
-
@Volker 它在我想要的时候滚动,除了屏幕没有反映滚动视图的新“位置”
标签: objective-c cocoa nstextview nsscrollview