swift - 标签未更新

标签 swift macos label

我正在尝试更新标签以指示状态,但它没有按预期刷新/显示

func setStatusText(status: String) {
    statusText.stringValue = status;
}

func doSomething() {
    setStatusText(status: "Activating license"); // This is never shown
    var rc = PerformAction()

    if (rc == 0) {
        setStatusText(status: "\(action) succeeded") // Correctly displayed
    } else {
        setStatusText(status: "\(action) failed") // Correctly displayed
    }

操作之前的状态更新永远不会显示,但操作之后设置的状态会正确显示。我该怎么做才能确保显示第一个状态?

编辑:我尝试了其他方法来尝试隔离它。我添加了一个按钮,它将设置文本、 sleep ,然后再次设置文本。我从未在状态中看到“第一”。

@IBAction func TestSettingText(_ sender: Any) {
    self.statusText.stringValue = "first";
    sleep(15)
    self.statusText.stringValue = "second";
}

最佳答案

我不知道 PerformAction 到底做了什么,但看起来它很快就完成了,所以您只是看不到激活许可证状态。它在那里,但只持续了很短的一段时间,然后立即更改为下一个状态

关于swift - 标签未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57171670/

相关文章:

swift - HTTP Get API调用总是失败 "NSLocalizedDescription=A server with the specified hostname could not be found"

R Treemap - 如何添加多个标签

c# - 如何将 C# GUI 标签文本分成单独的行(不在运行时)?

r - 如何将季度和每月观察标签的常规字符串分配给数据框的行名称?

swift - 从可选中获取对象类型?

ios - 如何在 iOS 上快速关闭 pub nub 日志记录?

ios - 动画 : continuous heartbeat monitor lines

ios - 创建可读 JSON 字符串的最简单方法是什么?

macos - 在 MacOs 的命令行上获取随机数(如 shuf)

html - Mac OS 中的神秘缩进 1px