2015-10-06 57 views
0

此代码编译行,但在组合框(cbxColors)是空的 - 不从数据源(数组:COLORS_OF)填充。在IB中检入Uses Data Source填充NSComboBox从数据源

func numberOfItemsInComboBox()返回正确的结果:5

func comboBox()没有做的工作。

我错过了什么?

编辑:现在的工作。

import Cocoa 

@NSApplicationMain 
class AppDelegate: NSObject, NSApplicationDelegate, NSComboBoxDelegate, NSComboBoxDataSource { 

@IBOutlet weak var window: NSWindow! 


func applicationDidFinishLaunching(aNotification: NSNotification) { 

    cbxColors.dataSource = self 

    numberOfItemsInComboBoxCell(cbxColors) 
    comboBoxCell(cbxColors, objectValueForItemAtIndex: 0) 
} 

func applicationWillTerminate(aNotification: NSNotification) { 

} 

@IBOutlet weak var cbxColors: NSComboBox! 
@IBOutlet weak var txtResult: NSTextField! 


@IBAction func actColors(sender: NSComboBox) { 
    // display User selected item in 'txtResult' 
} 

func numberOfItemsInComboBoxCell(aComboBox: NSComboBox) -> Int { 
    return(COLORS_OF.count) 
} 

func comboBoxCell(aComboBox: NSComboBox, objectValueForItemAtIndex index: Int) -> AnyObject { 
    return(COLORS_OF[index]) 
} 

let COLORS_OF = [ "Blue", "Green", "Purple", "Red", "Yellow" ] 
} 
+0

你是什么意思“不做它的工作”?你的“cbxColors”IBoutlet是否正确挂钩而不是零?为什么你有“NSTextFieldCell”IBoutlet而不是“NSTextField”? –

+0

@ xhruso00“cbxColors”IBOutlet已正确挂接到IB中的ComboBox。我改“NSTextFieldCell!的建议。我说:‘没有做的工作’,因为是没有得到填充组合框。 –

回答

1

您可能忘记检查使用数据源,或者您必须删除数据源连接并重新连接(Xcode的奇怪错误)。

enter image description here

其他然后,如果你的店铺是正确迷上你的代码工作。

enter image description here

+0

正如我所说,‘使用数据源’被选中。 –

+0

是否在断点代码停止(numberOfItems?)什么操作系统X你使用您可以将示例项目(对我的作品开箱,所以我将测试如果你的项目是OK) –

+0

的例子现在工作我加了这样一句话:?。 cbxColors.dataSource =自我 并添加“细胞'到 –