4

この単純な一般的な方法を While に使用しましたが、アプリ ベースのダイアログでは問題なく動作しますが、シート スタイルのダイアログでも同じ機能を使用したいので、うまくまとめることができません。

私が理解しているドキュメントによると、OS10.9以降の唯一の非推奨のアプローチは、完了ハンドラプロセスで NSAlert クラスを使用することです。汎用メソッドから Bool を返すことはほとんど不可能のようです。

私のコード:

-(BOOL)confirm :(NSString*)questionTitle withMoreInfo:(NSString*)addInfo andTheActionButtonTitle:(NSString*)actionType{
    BOOL confirmFlag = NO;

    NSAlert *alert = [NSAlert alertWithMessageText: questionTitle
                                 defaultButton:actionType
                               alternateButton:@"Cancel"
                                   otherButton:nil
                     informativeTextWithFormat:@"%@",addInfo];
    [alert setAlertStyle:1];

    NSInteger button = [alert runModal];

    if(button == NSAlertDefaultReturn){
        confirmFlag = YES;

     }else{

        confirmFlag = NO;
     }

     return confirmFlag;

 }


 The [alert runModal] returns the value I can return.

新しいパラダイム [alert beginSheetModalForWindow:[self window]sheetWindow completionHandler: some_handler] を使用すると、メソッドの最後で値を更新または返すことができません。理由はわかっていますが、これを達成するために考えていない方法はありますか。

私がシートに使用しているものと同様の方法を作成する方法を教えてください。

みえさんありがとう

4

1 に答える 1