簡體   English   中英

NSTableColumn值綁定到最前端窗口的NSArrayController在窗口更改時引發異常

[英]NSTableColumn value-bound to frontmost window's NSArrayController throwing exceptions on window change

我有一個NSTableView在被動態綁定到一個浮動窗口arrangedObjects對應於最前面的文檔窗口,如下面的代碼一個NSArrayController的實例屬性:

NSArrayController *documentSpecificArrayController;  // properly set elsewhere
NSTableColumn *tableColumnToBind;  // properly set elsewhere

[tableColumnToBind unbind:NSValueBinding];
[tableColumnToBind bind:NSValueBinding
               toObject:documentSpecificArrayController
            withKeyPath:@"arrangedObjects"
                options:[NSDictionary dictionaryWithObjectsAndKeys:
                         [NSNumber numberWithBool:YES],
                         NSContinuouslyUpdatesValueBindingOption,
                         nil]];

只要所表示的數組/表視圖為空,就可以正常工作; 一個文檔中的表視圖/表示的數組上的所有各種操作都可以正常工作。 如果從具有非空表示數組的文檔切換到表示數組為空的文檔,則會拋出*** -[NSCFArray objectAtIndex:]: index (0) beyond bounds (0)異常流。 。

在切換窗口時,我是否缺少在徹底斷開綁定時需要做的事情? 還有嗎 (是否省略了一些有助於診斷錯誤的特定信息?)

根據您的評論,您似乎可能正在嘗試創建檢查器調色板或類似的東西。 這是真的? 如果是這樣,您可能應該通過使用mainWindow.document.myArrayController的關鍵路徑綁定到Shared Application來直接綁定到活動文檔的數組控制器。 我認為您正在遇到綁定的運行循環/計時問題,使用此方法應該可以緩解這種情況。

暫無
暫無

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

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