2012-06-12 6 views
1

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

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

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]; 

Любые идеи?

* EDIT *

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

ответ

0

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

Я просто должен был перерисовать окно:

[mySheet display]; 

Doh! :)