我已經寫在SWIFT的OS X應用程序下面的代碼,代碼工作正常(NSComboBox是選擇能夠只,不可編輯)如何知道哪些NSCombobox選擇調用委託
我有這兩個IBOutlet中projNewProjType
和projNewRouter
,當我改變的任一NSComboBox的選擇,我可以看到正確的選擇的指數值和字符串值,但如何檢查返回的指數值是projNewProjType
不projNewRouter
在comboBoxSelectionDidChange()
import Cocoa
class NewProjectSetup: NSViewController, NSComboBoxDelegate {
let comboxProjValue: [String] = [「No」,」Yes」]
let comboxRouterValue: [String] = ["No","Yes"]
@IBOutlet weak var projNewProjType: NSComboBox!
@IBOutlet weak var projNewRouter: NSComboBox!
@IBAction func btnAddNewProject(sender: AnyObject) {
print(「Add New Button Pressed!」)
}
@IBAction func btnCancel(sender: AnyObject) {
self.dismissViewController(self)
}
override func viewDidLoad() {
super.viewDidLoad()
addComboxValue(comboxProjValue,projNewProjType)
addComboxValue(comboxRouterValue,projNewRouter)
self.projNewProjType.selectItemAtIndex(0)
self.projNewRouter.selectItemAtIndex(0)
self.projNewProjType.delegate = self
self.projNewRouter.delegate = self
}
func comboBoxSelectionDidChange(notification: NSNotification) {
let comboBox: NSComboBox = (notification.object as? NSComboBox)!
print("comboBox comboBox: \(comboBox)")
/* This printed 「<NSComboBox: 0x6000001e1a00>」*/
print("comboBox objectValueOfSelectedItem: \(comboBox.objectValueOfSelectedItem)")
/* This printed the correct selected String value */
print("comboBox indexOfSelectedItem: \(comboBox.indexOfSelectedItem)")
/* This printed the correct selected Index value */
}
/* Add value to Combo box */
func addComboxValue(myVal:[String],myObj:AnyObject){
let myValno: Int = myVal.count
for i in 0..<myValno{
myObj.addItemWithObjectValue(myVal[i])
}
}
}
Ooop!我不好。我將我的標識符設置爲「可訪問性」部分下的錯誤部分,這就是爲什麼當我嘗試打印.identifier時爲什麼會看到奇怪的字符串[_NS:179]。在我更正它並將其置於Identity部分之後,現在我可以使用.identifier來檢查選擇器。謝謝 –