繁体   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