Swift 如何知道调用委托的NSCOMBOX选择器

Swift 如何知道调用委托的NSCOMBOX选择器,swift,macos,nscombobox,Swift,Macos,Nscombobox,我用SWIFT for OS X应用程序编写了以下代码,代码运行良好。密码框仅可选择,不可编辑 我有这两个IBMOutlet projNewProjType和projNewRouter,当我更改其中一个NSComboBox的选择时,我可以看到正确选择的索引值和字符串值,但是如何检查返回的索引值是否来自组合框SelectionDidChange中的projNewProjType而不是projNewRouter 您已经知道两个nscombox出口的地址,并且您知道触发该通知的nscombox的地址,

我用SWIFT for OS X应用程序编写了以下代码,代码运行良好。密码框仅可选择,不可编辑

我有这两个IBMOutlet projNewProjType和projNewRouter,当我更改其中一个NSComboBox的选择时,我可以看到正确选择的索引值和字符串值,但是如何检查返回的索引值是否来自组合框SelectionDidChange中的projNewProjType而不是projNewRouter


您已经知道两个nscombox出口的地址,并且您知道触发该通知的nscombox的地址,因此为什么不执行以下操作:

func comboBoxSelectionDidChange(notification: NSNotification) {
    let comboBox: NSComboBox = (notification.object as? NSComboBox)!

    if comboBox == self.projNewProjType
    {
        print("selection changed via self.projNewProjType")
    }
    if comboBox == self.projNewRouter
    {
        print("selection changed via self.projNewRouter")
    }

您可以在IB中为NSCOMBOX设置标识符。选择组合框并选择identity inspector和name identifier。然后您可以这样做:

if comboBox.identifier == "someIdentifier" {
    // Do something
}

哎哟!我很坏。我在可访问性部分下将标识符设置为错误的部分,这就是为什么我在尝试打印.identifier时看到奇怪的字符串[\n NS:179]。在我更正它并将其放在Identity部分下之后,现在我可以使用.identifier来检查选择器。非常感谢。
if comboBox.identifier == "someIdentifier" {
    // Do something
}