从数据源填充 NSComboBox
Populate NSComboBox from Data Source
此代码编译正常,但 ComboBox (cbxColors) 为空 - 未从数据源(数组:COLORS_OF)填充。 Uses Data Source
在 IB 中检查。
func numberOfItemsInComboBox()
returns正确结果: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" ]
}
您可能忘记检查使用数据源,或者您必须删除数据源连接并重新连接(Xcode 的奇怪错误)。
除此之外,如果您的插座正确连接,您的代码就可以工作。
此代码编译正常,但 ComboBox (cbxColors) 为空 - 未从数据源(数组:COLORS_OF)填充。 Uses Data Source
在 IB 中检查。
func numberOfItemsInComboBox()
returns正确结果: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" ]
}
您可能忘记检查使用数据源,或者您必须删除数据源连接并重新连接(Xcode 的奇怪错误)。
除此之外,如果您的插座正确连接,您的代码就可以工作。