У меня есть несколько элементов интерфейса Cocoa с выходными соединениями с объектом, созданным в объекте NSView, который в свою очередь помещается NSViewController. Эти элементы, определенный индикатор выполнения и текстовая метка не обновляются: индикатор выполнения мертв и пуст, несмотря на постоянное изменение его значения, текстовая метка не отображается через [textLabel setHidden: NO], текстовая метка не изменяется его строку.Элементы пользовательского интерфейса Cocoa не обновляются
То, что я знаю:
- Там нет никакой разницы между связывающими значениями и устанавливать их в коде. Ничего не меняется.
- Я проверил выходные соединения. Они все там.
- Я пробовал [X displayIfNeeded], где X был самими объектами пользовательского интерфейса, содержащим NSView и основным окном. Нет разницы.
- [progressBar setUsesThreadedAnimation: YES] не имеет значения. Интересно, что если я посмотрю на progressBar mid-program, _threadedAnimation все еще нет.
- Объект, содержащий все эти выходы и выполняющий операцию импорта, находится в NSOperationQueue, принадлежащем объекту NSViewController.
Спасибо!
EDIT: Как я уже сказал, я позвонил [self performSelectorOnMainThread: @selector (updateProgress :) withObject: [NSNumber numberWithInt: myObject] waitUntilDone: NO]. (Я также попробовал waitUntilDone: YES.) Он по-прежнему не обновляется. Отладчик четко показывает updateProgress: происходит в основном потоке, поэтому я не знаю, чего не хватает.
Разве это не ОК, чтобы вызвать селектор, определенный в NSOperation? например, [self performSelectorOnMainThread: @selector (updateProgress :) withObject: myObject waitUntilDone: YES]; Я пытаюсь это сделать, и я не получаю улучшения. У меня был бы этот селектор в моем контроллере приложений, но, ну ... я не знаю, как связать его с этим объектом. : / – spamguy