2014-11-05 62 views
0

我有一個從Swift中的NSObject派生的類的對象數組,我想添加到NSComboBox使用字符串數組以外的東西填充NSComboBox

例如:

class MyItem : NSObject 
{ 
    var data = "Hello" 
    var value = 1.234 
} 


var listOfItems = [MyItem](); 

var item1 = MyItem() 
var item2 = MyItem() 

listOfItems.append(item1) 
listOfItems.append(item2) 

myNSComboBox.addItemsWithObjectValues(listOfItems) 

有什麼我可以添加或覆蓋在MyItem,將返回在NSComboBox要顯示的字符串?

回答

0

您需要創建一個字符串數組,其中包含相應的字符串。

func transform(sequence: [MyItem], inout output: [String], pred: (MyItem) -> String) { 
    var g = sequence.generate() 
    while let obj = g.next() { 
     output.append(pred(obj)) 
    } 
} 


var listOfItems: [String] = [] 
transform(listOfItems, &listOfItems) { 
    $0.data 
} 

myNSComboBox.addItemsWithObjectValues(listOfItems) 

上面的轉換函數可以做成一個泛型函數,可以用於任何序列類型。我將把它作爲讀者的練習。 :-)