Как заставить мою программу ждать, пока nsopenpanel закроется?

StackOverflow https://stackoverflow.com/questions/8369210

  •  27-10-2019
  •  | 
  •  

Вопрос

Как и заголовок, мне нужно заставить мою программу подождать, пока моя NSOpenPanel закрывается. У меня есть панель в windowControllerWillLoadNib так что это происходит до того, как откроется окно моего документа. Но что происходит, так это то, что он просто загружает оба окна, не ожидая закрытия панели. Как заставить его подождать, пока открытая панель не будет закрыта и полностью закончена?

Это было полезно?

Решение

Используйте метод RunModal.

Пример кода:

int result;
NSOpenPanel *oPanel = [NSOpenPanel openPanel];
result = [oPanel runModalForDirectory:NSHomeDirectory() file:nil types:nil];
if (result == NSOKButton) {
//your code
}

Другие советы

Установите открытую панель, а затем вы можете сделать что -то вроде этого:

if ([openPanel runModal]==NSFileHandlingPanelOKButton) {
    // get the urls
    NSArray *fileURLs = [openPanel URLs];
} else {
    // cancel button was clicked
}

RunModal останавливает выполнение вашей программы, пока панель не закроется.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top