NSOutlineView展開指定節(jié)點(diǎn)

Mac開發(fā)時(shí)使用NSOutlineView來(lái)實(shí)現(xiàn)層級(jí)結(jié)構(gòu)顯示數(shù)據(jù)時(shí),比如文件管理,往往需要展開對(duì)應(yīng)層級(jí)。

系統(tǒng)提供的方法是:

- (void)expandItem:(nullable id)item expandChildren:(BOOL)expandChildren;

但是在使用這個(gè)方法的時(shí)候,往往達(dá)不到理想的效果,我一開始是這樣使用的:

[_outlineView expandItem:expandItem?expandChildren:NO];

其中expandItem是我想要展開的那個(gè)節(jié)點(diǎn)的model。

但是運(yùn)行起來(lái)發(fā)現(xiàn),只有當(dāng)expandItem是當(dāng)前所在層級(jí)的item時(shí),才能展開,也就是想要展開指定的item,需要先一層層展開它的父級(jí),直到root為止。

于是我們這樣寫:

JDSLayerModel *superM = expandItem.superLayer;

while (superM) {

? ? ? ? ? ? ? ? [_outlineView expandItem:superM expandChildren:NO];

?? ? ? ? ? ? ? ?superM = superM.superLayer;

}

[_outlineView expandItem:expandItem expandChildren:NO];

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、簡(jiǎn)介 <<UITableView(或簡(jiǎn)單地說(shuō),表視圖)的一個(gè)實(shí)例是用于顯示和編輯分層列出的信息的一種手段 <<...
    無(wú)邪8閱讀 10,959評(píng)論 3 3
  • 今天開始分析YYCache 包含的文件類 YYCache YYMemoryCache YYDiskCache YY...
    充滿活力的早晨閱讀 902評(píng)論 4 1
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,632評(píng)論 1 32
  • // //UIView.h //UIKit // //Copyright (c) 2005-2015 Apple ...
    李某lkb閱讀 1,873評(píng)論 0 0
  • 發(fā)現(xiàn)寫博客想寫明白也是一件不容易的事情。 這次拿YYKIt 源碼 分析分析。希望這次能寫的更好些。 YYKit 系...
    充滿活力的早晨閱讀 6,808評(píng)論 4 16

友情鏈接更多精彩內(nèi)容