Не удается изменить текстовую метку на листе

Я создал лист, на котором я хотел бы отображать различные сообщения, пока программа выполняет анализ данных. Лист открывается и закрывается правильно, и у меня есть текстовая метка на листе, которая подключена к моему главному контроллеру (владельцу листа) с выходом IB.

Nib загружается правильно, открывается и закрывается правильно, но статическая текстовая метка никогда не обновляется. Подключенный IB Outlet был определен следующим образом:

IBOutlet id mySheetText;

Я пытаюсь изменить текст на листе так:

[mySheetText setStringValue:@"Some text message..."];

Этот формат отлично работает, если метка находится в главном окне, но ничего не делает, если метка находится на листе.

Все соединения в IB кажутся правильными. Я уверен, что мне не хватает чего-то очень простого, и я предполагаю, что это как-то связано с тем фактом, что лист - это другое "окно", чем главное окно, но я не могу ничего найти в документах, чтобы указать мне в правильном направлении.

Кстати, вот как я соединил лист...

NSWindow *mySheet;

@property (assign) IBOutlet NSWindow *mySheet;
@synthesize mySheet;

... и открыл его:

if (!serverSyncSheet) {
    [NSBundle loadNibNamed:@"mySheetNibFile" owner:self];
}

[NSApp beginSheet: self.mySheet
   modalForWindow: [[NSApp delegate] mainWindow]
    modalDelegate: self
   didEndSelector: NULL
          contextInfo: NULL];

Есть идеи?

* РЕДАКТИРОВАТЬ *

Итак, получается, что я частично прав. Если я пытаюсь прочитать текстовое значение, оказывается, что оно устанавливает правильный текст, но лист не обновляется, чтобы ОТОБРАЗИТЬ изменение. Я подозреваю, что мне нужно сказать окну перерисовать... никогда не делал этого раньше. Вернуться к документам, чтобы посмотреть, смогу ли я найти его. Если кто-нибудь знает метод вызова, дайте мне знать.:) Спасибо!

1 ответ

Решение

Ну, мои подозрения были верны... это было что-то простое.

Мне просто пришлось перерисовать окно:

[mySheet display];

Doh!:)

Другие вопросы по тегам