簡體   English   中英

如何將NSOutlineView與多個核心數據實體作為組一起使用

[英]How to use NSOutlineView with multiple core data entities as groups

我一直在研究如何使用多個實體從核心數據中填充源列表。 如果我有一個實體,則可以遵循文檔並使用NSTreeController填充數據並將其綁定到NSOutlineView。

在我的特定情況下,我大約有3個硬編碼組,其中每個組都與一個單獨的核心數據實體相關。 我試圖合並它們,但是它們都與不同實體有關系,因此我無法將它們全部合並到一個核心數據實體中。 理想情況下,我想將3個核心數據實體綁定到我的“源列表”,它們看起來類似於以下內容(其中筆,紙和書桌都是單獨的實體):

在此處輸入圖片說明

有誰知道我能夠使用控制器來幫助管理三個實體並將其與我的“源列表”合並,還是最好的方法是手動填充NSOutlineView? 我可以使用某種NSArrayControllers數組填充NSOutlineView嗎? 有沒有一種方法可以覆蓋NSTreeController來從三個來源獲取數據?

作為實驗,我創建了一個具有大綱視圖和樹形控制器的項目。 樹控制器的內容是一個字典數組,該數組控制器(在實體模式下)是出口:

treeController.content = [
    ["arrayController": penTreeArrayController, "name": "Pens"],
    ["arrayController": paperTreeArrayController, "name": "Papers"],
    ["arrayController": deskTreeArrayController, "name": "Desks"]
]

樹控制器是NSTreeController的子類:

override func childrenKeyPath(for node: NSTreeNode) -> String? {
    if node.representedObject is NSManagedObject {
        return nil
    }
    return "arrayController.arrangedObjects"
}

它似乎有效。 當我添加或刪除筆時,輪廓視圖會自動更新。 反之亦然,我不能使用樹控制器添加筆。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM