Objective c 如何在NSArrayController自动重新排列消息后发送消息';什么东西?

Objective c 如何在NSArrayController自动重新排列消息后发送消息';什么东西?,objective-c,cocoa,nstableview,nsarraycontroller,Objective C,Cocoa,Nstableview,Nsarraycontroller,我确实在我的NSArrayController中启用了automaticallyrarrangsobjects 这很好,但是每次重新排列NSArrayController时,我都希望将-scrollRowToVisible发送到相关的NSTableView,以便当前选定的行始终可见 我可以把它放在哪里,以便在每次重新排列时发送它?您可以使用KVO观察阵列控制器的arrangedObjects属性。当这种情况发生变化时,您可以滚动 (值得一提的是,如果用户故意滚动查看表格的另一部分,这可能会惹恼他

我确实在我的
NSArrayController
中启用了
automaticallyrarrangsobjects

这很好,但是每次重新排列
NSArrayController
时,我都希望将
-scrollRowToVisible
发送到相关的
NSTableView
,以便当前选定的行始终可见


我可以把它放在哪里,以便在每次重新排列时发送它?

您可以使用KVO观察阵列控制器的
arrangedObjects
属性。当这种情况发生变化时,您可以滚动


(值得一提的是,如果用户故意滚动查看表格的另一部分,这可能会惹恼他们。)

侦听
DidChangeArrangeCriteria
就足够了吗?不幸的是,不行,因为NSArrayController也会在插入新项目后或在项目的属性,这与排序相关,change.Works很好,你的评论是对的,用户可能故意在别处滚动。