user3185748
user3185748

Reputation: 2538

Update UI element in custom Swift class

Alright, so when I first started reading about Xcode and interface builder I followed a few tutorials that made use of AppDelegate.Swift for all UI events. I'm branching out now and trying to make a custom class that still updates labels and windows as I had done in AppDelegate.

I've tried adding the @IBOutlet label to the top of the class however I'm not able to make the connection with my program. I'm trying to update NSPopUpButton, serialListPullDown.

Is there another way of doing this?

import Foundation
import Cocoa

class Serial {

    init() {
    }

    @IBOutlet var serialListPullDown : NSPopUpButton!

    func refreshSerialList(defaultprompt: String) {

        //Initialize ORSSerialPortManager
        let portManager : ORSSerialPortManager = ORSSerialPortManager.sharedSerialPortManager()
        var availablePorts : NSArray = portManager.availablePorts

        //Erase entries from popup field
        serialListPullDown?.removeAllItems()

        for port in availablePorts as [ORSSerialPort] {
            //Add ports to popup window

            var Port = "\(port.path)"

            serialListPullDown?.insertText(Port)

        }
    }
}

Upvotes: 0

Views: 723

Answers (1)

Mundi
Mundi

Reputation: 80265

Your problem is in IB, making the connection, not the code in the class.

Create an object for your Serial class in IB, change its class in the inspector to Serial, and ctrl-drag to wire up your control.

Upvotes: 0

Related Questions