В настоящее время я изучаю (выполняя) 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.
Итак, мой вопрос:
Как я могу заблокировать мой метод от возврата до тех пор, пока "лист" не будет закрыт?
Или я ошибаюсь?