相关疑难解决方法(0)

NSPopupButton在基于NSTableView的视图中:使绑定工作

问题描述

我正在尝试实现一些应该简单且相当常见的东西:在绑定中填充NSPopupButton中的NSPopupButton填充NSTableView.Apple在其文档" 使用弹出菜单实现一对一关系"中为基于单元格的表描述了这一点,它看起来像这样:

在此输入图像描述

我不能让它适用于基于视图的表.无论我做什么,"作者"弹出窗口都不会填充.

我有两个数组控制器,一个用于表中的项目(Items),另一个用于作者(作者),两者都与我的核心数据模型中的相应实体相关联.我在我的单元格中绑定NSManagedPopup,如下所示:

  • 内容 - > 作者(控制器密钥:arrangeObjects)
  • 内容值 - > 作者(控制器密钥:arrangeObjects,模型密钥路径:名称)
  • Selected Object - > Table Cell View(Model Key Path:objectValue.author

如果我把弹出窗口放在桌子外的某个地方它工作正常(显然除了选择),所以我想绑定设置应该没问题.


我已经尝试过的事情

  1. 有人建议使用IBOutlet属性Authors数组控制器的解决方法,但这对我来说似乎也不起作用.

  2. 另一个SO问题中,建议子类化NSTableCellView并以编程方式建立所需的连接.我试过这个,但成效有限.

    如果我按如下方式设置绑定:

    - (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
        NSView *view = [tableView makeViewWithIdentifier:tableColumn.identifier owner:self];
    
        if ([tableColumn.identifier isEqualToString:@"Author") {
            AuthorSelectorCell *authorSelectorCell = (AuthorSelectorCell *)view;
            [authorSelectorCell.popupButton bind:NSContentBinding toObject:self.authors withKeyPath:@"arrangedObjects" options:nil];
            [authorSelectorCell.popupButton bind:NSContentValuesBinding …
    Run Code Online (Sandbox Code Playgroud)

cocoa nstableview cocoa-bindings nspopupbutton

6
推荐指数
1
解决办法
3492
查看次数