2012-12-14 13 views
5

den/çöküşü animasyon genişletmek merak ediyorum nasıl oluyor bir hareketlendirmek kodu bir NSOutlineView ağacı düğümü genişlemesi/çöküşü? Sorunun muhtemeldir
yüzden bir yolu var IS varsayılan çizilmiş ok aracılığıyla bir düğüm ...
NSOutlineView kodu

cevap

11

Benim asıl kod bu sadece Application Kit Release Notes for OS X v10.8 ile 10,7

Asıl metin altında mevcut değildi, Tamam - expandItem :, -expandItem: expandChildren :, -collapseItem :, -collapseItem: collapseChildren :. Örnek olarak, belirli bir öğenin genişlemesini canlandırmak için: [[anahatView animatör] expandItem: item];

+0

Sürüm notlarına bağlantı verebilir misiniz? – zakdances

+0

Bitti. Söz konusu metin NSOutlineView bölümüdür – Nightbirdsevolve

+1

Swift'i kullanıyorsanız, 'anahatView.animator(). Ex' yazmaya çalıştığınızda Xcode'ta otomatik tamamlama olmaz. Belki de bir böcek. Ama aslında el ile yazdığınız takdirde çalışır 'anahatView.animator(). ExpandItem (item) '. –

0

node sen collapseItem: geçirerek genişletmek eğer

// this works ok but doesn't animate 

NSTreeNode *node = [self.outlineView itemAtRow:self.outlineView.clickedRow]; 

if([self.outlineView isItemExpanded:node]) 
{ 
    [self.outlineView.animator collapseItem:node]; 
}else{ 
    [self.outlineView.animator expandItem:node]; 
} 

bir taslak görünümü doğal olarak canlandırır. Ağaç denetleyicinizin, veri modelinizdeki gerçek düğüm yerine düğümü temsil etmek için kullandığı nesneyi iletmeniz gerekir. NSTreeController kullanıyorsanız, o zaman veri modeli nesnesini temsil eden düğümü bulmak için -[NSTreeController arrangedObjects] döndürülen yapıyı çapraz gerekir.

NSOutlineView

aşağıdaki yöntemler artık -animator proxy üzerinden animasyonlu ediliyor desteklemektedir:

+0

Merhabalar, koduyla açılıp kapanmayı denedim. Sorunum ne? ANIMATING – Nightbirdsevolve