【问题标题】:Update UI element in custom Swift class更新自定义 Swift 类中的 UI 元素
【发布时间】:2014-08-22 19:24:17
【问题描述】:

好的,所以当我第一次开始阅读有关 Xcode 和界面构建器的内容时​​,我遵循了一些使用 AppDelegate.Swift 处理所有 UI 事件的教程。我现在正在扩展并尝试创建一个仍然更新标签和窗口的自定义类,就像我在 AppDelegate 中所做的那样。

我尝试将@IBOutlet 标签添加到类的顶部,但是我无法与我的程序建立连接。我正在尝试更新 NSPopUpButton、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)

        }
    }
}

【问题讨论】:

    标签: class user-interface swift nspopupbutton uibuilder


    【解决方案1】:

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

    在 IB 中为您的 Serial 类创建一个对象,在检查器中将其类更改为 Serial,然后按住 ctrl-drag 连接您的控件。

    【讨论】:

    • 我不确定我是否明白你在说什么。我去了 IB 并点击了我的 NSPopUpButton 但唯一提到类的是以下字段:imgur.com/uBnvO9Z 是正确的吗?当我插入我的类时,它只是在运行时出现错误。
    • 您需要创建一个代表您的Serial 类的对象。
    • 我的印象是我可以使用我现有的对象。例如,我是否需要识别我的 NSObjectController 类型的类?
    • 不,类型为Serial
    猜你喜欢
    • 1970-01-01
    • 2014-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多