Я пишу приложение, которое имеет 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
на самом деле кажется изменившимся на основании того факта, что он печатает обновленный текст (через консоль), текст в окне никогда не изменяется. Почему это происходит? Причина, вероятно, действительно очевидна для профессионалов, но я все еще любитель и не могу понять. Спасибо.