我有一个显示目录层次结构的 NSOutlineView
。它被绑定到一个 NSTreeController
,后者又被绑定到我的管理文件系统节点的类。当发生文件系统事件时,我会在 children
键路径上触发 KVO 通知,这会导致大纲视图更新。但是当它更新时,它会突然滚动到顶部。我希望滚动位置保持不变。有什么想法吗?
以下是发生 FS 事件时运行的代码:
- (void)URLWatcher:(CDEvents *)URLWatcher eventOccurred:(CDEvent *)event {
[self willChangeValueForKey:@"children"];
children = nil; // this will refreshed next time children is called
[self didChangeValueForKey:@"children"];
}
这是在模型中,所以我无法访问视图。