2011-09-29 104 views
0

我有點上NSPopUpButton綁定的丟失。我有一個自定義類,它包含一系列我想在彈出窗口中顯示的項目。這些項目是NSManagedObject的子類,它們包含在NSArray中。我不想使用NSArrayController,因爲我以編程方式更改選擇方面遇到了很多麻煩,感覺像是混淆了實現。綁定NSPopUpButton到的NSArray

的問題很簡單,我不知道如何將數組正確綁定到彈出。我所做的所有事情都是在彈出菜單中列出數組項目,但標題是核心數據URI。我相信我可以使用description方法來改變標題,但這聽起來不太可取。

任何想法如何綁定NSArrayNSPopUpButton正常嗎?

回答

0

我想我解決了它。我簡單地創建這些綁定NSPopUpButton

  1. 「內容」 到items財產

  2. 「選擇對象」(NSArray*型),以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]; 
} 

第三結合可以一直還爲標題單獨的數組,但我這是靈活得多。您的解決方案

+0

謝謝,這讓我在正確的道路上。我想說明的是,我有一個帶有屬性的類(myinstance.items),它是一組字典。我可以簡單地通過將內容綁定到數組和將內容值綁定到myinstnace.items.name來在字典中顯示包含鍵值「name」的NSPopupButton。 – Colin

相關問題