• 我的总体目标
我的目标是
- 在基于视图的 Table View 中加载一些数据并执行一些操作(用于 Table View 的显示)
- 在加载结束时滚动到表格视图的顶部。
• 更多细节
在加载过程中,会执行很多操作。更准确地说,表格视图是基于视图的,并且在每一行中,都有一个文本视图,其内容绑定到某个属性。实现了委托方法- (void)textDidChange:
(必要时放大文本视图)。出于同样的目的,我还NSTextView
对方法进行了子类化和覆盖。- (void)setString:
因此,当文本加载到 Table View 的行时,会执行很多操作。
• 编码
我的代码适用于afterDelay:0
(滚动到顶部发生)但并非没有。
// works
- (void)updateTheController
{
[super updateTheController] ;
self.theCollectionView.representedObject = self.representedObject ;
[self.theCollectionView performSelector:@selector(goToTop)
withObject:nil
afterDelay:0] ;
}
但
// does not work
- (void)updateTheController
{
[super updateTheController] ;
self.theCollectionView.representedObject = self.representedObject ;
[self.theCollectionView goToTop] ;
}
• 我的问题
我想知道是否有更好的解决方案或解释。我记得一些东西,CATransaction
但我不知道它是否可以在这里工作,而且我不记得要调用哪个方法(以及为什么)[CATransaction commit]
,,[CATransaction commit]
?
我的问题可能是:我可以用什么替换afterDelay:0
,为什么需要它?
谢谢!!