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