NSTextfield не обновляется при вызове из другого класса - PullRequest
0 голосов
/ 05 января 2012

У меня есть файл runthis.h, где у меня есть метка:

IBOutlet NSTextField *updateStatus;

Теперь в моем файле runthis.m в классе с именем startTest я обновляю его, используя

-(IBAction) startTest:(id)sender {
        [updateStatus setStringValue:@"Testing"];
}

Теперь, если я создаю объект для класса runthis в другом файле testing.m, а затем попробуйте это:

 runthis *testSomething = [[runthis alloc] init];
[testSomething performSelectorInBackground:@selector(startTest:) withObject:nil];

Но я нахожу, что пользовательский интерфейс для метки * updateStatus никогда не будет установлен на «Тестирование», когдаЯ вызываю его с testing.m. Если я вызываю его напрямую с runthis.m, пользовательский интерфейс обновляется, как и ожидалось.Есть идеи почему?Благодаря.

1 Ответ

1 голос
/ 06 января 2012

Если runthis не расположен в отдельном кончике, его розетка не будет подключена автоматически, вам нужно будет передать ее в качестве ссылки.В testing вам придется подключить текстовое поле, а затем передать его в runthis, например:

[testSomething setStatusField:updateStatus];

Или вы можете создать ссылку на ваш testing объект из вашего runthisобъект (назовите его делегатом) и testing обновите интерфейс напрямую.Это подход, который я бы использовал.

...