2015-10-06 94 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 =自我 並添加「細胞'到 –