标签未更新

时间:2019-07-23 20:22:40

标签: 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
    }

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

编辑:我尝试了其他尝试来隔离它。我添加了一个按钮,它将设置文本,休眠,然后再次设置文本。我从没有看到“第一”的状态。

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

1 个答案:

答案 0 :(得分:0)

我不知道PerformAction的确切功能,但是看来它很快完成了,所以您只是看不到Activating license的状态。它在那里,但只有一小会儿,立即变为下一个状态