使用字符串数组以外的其他东西填充NSComboBox

时间:2014-11-05 00:57:20

标签: objective-c cocoa swift

我有一个从Swift中NSObject派生的类的对象数组,我想添加到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中显示的字符串吗?

1 个答案:

答案 0 :(得分: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)

上面的转换函数可以作为一个通用函数,适用于任何序列类型。我将把它作为读者的练习。 : - )