0

我对绑定有点迷茫NSPopUpButton。我有一个自定义类,其中包含我想在弹出窗口中显示的项目数组。这些项目是NSManagedObjects 的子类,它们包含在NSArray. 我不想使用 an ,NSArrayController因为我在以编程方式更改选择时遇到了很多麻烦,而且感觉就像使实现混乱。

问题只是我不知道如何将数组正确绑定到弹出窗口。我所做的只是在弹出菜单上列出数组项,但标题是核心数据 URI。我相信我可以使用该description方法更改标题,但这听起来不太可取。

任何想法如何NSArray正确绑定NSPopUpButton

4

1 回答 1

1

我想我解决了。我只是为以下内容创建了这些绑定NSPopUpButton

  1. 属性的“内容” items(类型NSArray*

  2. “选定对象”到selectedItem(类型Item*

  3. 最后“内容价值”到items.name

对于我实现的第三个绑定valueForKeyPath:

- (id)valueForKeyPath:(NSString *)keyPath
{
    NSArray *components = [keyPath componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"."]];
    if ([components count] == 2 && [components objectAtIndex:0] == @"items")
    {
        return [self.items valueForKey:[components objectAtIndex:1]];
    }
    return [super valueForKeyPath:keyPath];
}

第三个绑定也可以是一个单独的标题数组,但是这更加灵活。

于 2011-09-30T18:02:34.170 回答