У меня есть IBAction с некоторым простым кодом внутри:
-(IBAction)change:(id)sender {
[textfield setHidden:NO];
[self dolengthyaction];
}
'textfield' - это NSTextField в nib-файле, а -'dolengthyaction - это функция, выполнение которой занимает около минуты.
Мой вопрос: почему текстовое поле не отображается, пока не будет выполнено ПОСЛЕ «dolengthyaction»?Я хочу, чтобы это было раскрыто до того, как начнется длительная акция.Это врожденная проблема или что-то не так с моим кодом?(или в другой части моего кода?)
Я все еще не очень хорош в программировании, поэтому я извиняюсь, если что-то написал плохо и отформатировал что-то неправильно.
РЕДАКТИРОВАТЬ: Там нетмногое другое, кроме этого IBAction и -dolengthyaction ...
-(void)doLengthyAction {
sleep(10);
}
-(IBAction)change:(id)sender {
[textfield setHidden:NO];
[self doLengthyAction];
[textfield setHidden:YES];
}
Все, что я действительно хочу сделать, это отобразить метку, когда действие выполняется, и скрыть его, когда оно выполнено.
По сути, это означает, что сейчас он вообще не отображается.
На самом деле, в -doLengthyAction это не sleep (10), а операция NSFileManager, которая копирует около 50 МБ материала.,Код был довольно длинным, но если вы хотите, чтобы я опубликовал его, я могу.Я проверил это с помощью sleep (), но он тоже не работает.