我正在显示一个树,我需要添加一个元素,但我想保留当前选择的项。如果我这样做:
oldSelectedItem := treePresenter selectedItem.
treePresenter
roots: newRootCollection;
selectItem: oldSelectedItem
它当然会起作用,但有一个问题:激活事件(whenActivatedDo:
(将被触发,我不知道这是什么!我该如何避免它?
规范中的树和树表实现了APIupdateRootsKeepingSelection:
来防止这种情况的发生
在实践中,它与上面的代码相同,但不会触发任何激活,也不会进行激活传输。
此代码:
treePresenter updateRootsKeepingSelection: newRootCollection
将具有与原始代码相同的效果,但在执行时不会触发激活
(当然,为了正常工作,新集合必须包含以前选择的元素(。