Текстовая метка не обновляется на экране, даже если отображается в `print ()` - PullRequest
0 голосов
/ 19 июня 2020

Я пишу приложение, которое имеет NSSplitViewController в качестве основного View-Controller. У меня он подключен, поэтому нажатие кнопки в строке меню запускает @IBAction, который затем вызывает функцию в одном из подчиненных View-Controllers.

if let board = storyboard {
    let imageController = board.instantiateController(withIdentifier: "VC_image_ID") as! VC_image
    imageController.viewDidAppear() // necessary or else I'll get an "Unexpectedly found nil" later on
    DispatchQueue.global().async{imageController.processImage(path)} // path variable was set earlier in the code, but not shown here
}

Внутри подчиненного View-Controller (с именем VC_image) я пытаюсь изменить stringValue метки, используя следующий код:

public func processImage(_ path: String) {
    DispatchQueue.main.async {
        self.imageText.stringValue = path
        print(self.imageText.stringValue)
    }
}

Хотя imageText.stringValue на самом деле кажется изменившимся на основании того факта, что он печатает обновленный текст (через консоль), текст в окне никогда не изменяется. Почему это происходит? Причина, вероятно, действительно очевидна для профессионалов, но я все еще любитель и не могу понять. Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...