Class 更新自定义Swift类中的UI元素

Class 更新自定义Swift类中的UI元素,class,user-interface,swift,nspopupbutton,uibuilder,Class,User Interface,Swift,Nspopupbutton,Uibuilder,好的,当我第一次开始阅读Xcode和interface builder时,我学习了一些教程,这些教程使用AppDelegate.Swift处理所有UI事件。我现在正在扩展并尝试创建一个自定义类,它仍然像我在AppDelegate中所做的那样更新标签和窗口 我已经尝试将@IBOutlet标签添加到类的顶部,但是我无法与我的程序建立连接。我正在尝试更新NSPoupButton,serialListPullDown 还有别的办法吗 import Foundation import Cocoa cla

好的,当我第一次开始阅读Xcode和interface builder时,我学习了一些教程,这些教程使用AppDelegate.Swift处理所有UI事件。我现在正在扩展并尝试创建一个自定义类,它仍然像我在AppDelegate中所做的那样更新标签和窗口

我已经尝试将@IBOutlet标签添加到类的顶部,但是我无法与我的程序建立连接。我正在尝试更新NSPoupButton,serialListPullDown

还有别的办法吗

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)

        }
    }
}

您的问题在于IB,建立连接,而不是类中的代码


在IB中为串行类创建一个对象,在inspector中将其类更改为串行,然后按住ctrl键并拖动以连接控件

我不确定我是否明白你的意思。我去了IB并点击了我的NSpoupButton,但唯一提到的类是以下字段:这是正确的吗?当我插入类时,它在运行时突然出现错误。您需要创建一个表示串行类的对象。我的印象是我可以使用现有的对象。例如,我是否需要标识NSObjectController类型的类?否,类型为Serial。