Я новичок в NSOpenPanel / NSSavePanel / NSPanel.Я использую NSOpenPanel, чтобы выбрать каталог, файлы которого мое приложение будет перебирать, и выполнять довольно трудоемкую обработку.
Я могу вызвать -close на панели, но это не возвращает фокус главному окну.Я много читал о «отклонении» панели - но я не нашел никаких методов, которые «закрывали бы», а не «закрывали» панель или окно.
Это просто, что мне нужно, чтобы вызватьфоновый поток (NSOperation)?
Это то, что мой -chooseDidEnd: returnCode: contextInfo:
-(void) chooseDidEnd:(NSOpenPanel *)panel returnCode:(int)returnCode contextInfo:(void *)contextInfo
{
[panel orderOut:self];
[panel release];
if (returnCode == NSFileHandlingPanelOKButton)
{
[progressIndicator startAnimation:self];
[self doLotsOfTimeConsumingWork:[[panel URL] path]];
[progressIndicator stopAnimation:self];
}
}
Пока NSOpenPanel не исчезает, мой NSProgressIndicator не анимируется, а главное окно не 'не оживает до после -doLotsOfTimeConsumingWork: завершается.
Обновление Только что посмотрел на код NSOperationSample, и похоже, что это путь.