I'm using Xcode 6 and Swift to develop an OS X app, not iOS. Let's say we have two toggle buttons and each one controls a combobox. Everytime press the button, it will enable or disable the combobox it controls. I can definately set up separate actions for each button. Since I have ten buttons, this approach seems to contain a lot of redundant code.
@IBAction func clickBtn1 (sender: NSButton){
    if combobox1.enabled == true
    {
        combobox1.enabled = faulse;
    }
    else
    {
        combobox1.enabled = true;
    }
}
@IBAction func clickBtn2 (sender: NSButton){
    //same codes for combobox 2
}
Is there any way to make this simpler, such as share the action code by identify different sender, Similar to VB.NET?
UPDATE: I found a imcomplete solution for it from https://stackoverflow.com/a/24842728/2784097
now I control+drag the two buttons to the same action in ViewController.swift and also give those two buttons different tag. button1.tag=1, button2.tag = 2. The code now looks like,
//button1.tag=1, button2.tag = 2.
@IBAction func clickButton(sender:NSButton) {
    switch(sender.tag){
        case 0:
            combobox1.enabled = !combobox1.enabled;
        break;
        case 1:
            combobox2.enabled = !combobox2.enabled;
        break;
        default:
        break;
        }
 }
This solves a part of my problem. Next, I wonder is there any way to access/find the controls/components by reference, for example a string or tag or name anything. Pseudo code would like following,
//button1.tag=1, button2.tag = 2.
@IBAction func clickButton(sender:NSButton) {
    //pseudo code
    combobox[button.tag].enabled = !combobox[button.tag].enabled;
 }