Это на самом деле очень просто, и вам не нужны сторонние библиотеки. Вместо того, чтобы вызывать expandItem:
/ collapseItem:
непосредственно в вашем экземпляре NSOutlineView
, вы передаете их прокси-объекту animator
.
NSOutline *outlineView = ...;
id item = ...;
[[outlineView animator] collapseItem:item];
Также обратите внимание, что вы можете развернуть / свернуть все клетки одновременно, передав элемент nil
.
Документация: Ссылка на протокол NSAnimatablePropertyContainer