Блокировать до тех пор, пока NSAlert (показанный в виде модального листа) не будет отклонен

В настоящее время я изучаю (выполняя) objective-c, реализуя функцию, которой, как мне казалось, не хватает в Titanium Appcelerator Desktop SDK: способ создания модального диалога с пользовательскими текстами кнопок и, при необходимости, их отображения как " простыня".

Все отлично и работает, однако при отображении NSAlert в виде «листа» мой метод, создающий предупреждение, немедленно возвращается, и это то, что я хочу предотвратить.

Метод, создающий предупреждение, возвращает int (код возврата из NSAlert).

Внутренний код в основном сводится к следующему:

int returnCode = -1;
if (displayAsSheet) {
    [alert beginSheetModalForWindow:nativeWindow modalDelegate:delegate didEndSelector:@selector(alertDidEnd:returnCode:contextInfo:) contextInfo:nil];

} else {
    returnCode = [alert runModal];
}

return returnCode;

modalDelegate - это объект, реализующий необходимое:

- (void)alertDidEnd:(NSAlert *)alert returnCode:(NSInteger)returnCode contextInfo:(void *)contextInfo;

, а пока он просто выполняет NSLog returnCode.

Итак, мой вопрос:

Как я могу заблокировать мой метод от возврата до тех пор, пока "лист" не будет закрыт?

Или я ошибаюсь?

0
задан Tomas 10 November 2011 в 18:42
поделиться