2

NSSavePanelを使用した後、アプリを閉じるのに問題があります...アプリを開いて操作してから閉じると、正しい方法で閉じます...このコードをappdelegateに入れてアプリを閉じる

- (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)sender
 {
   return YES;
 }

しかし、パネルを開いてtxtファイルを保存すると... NSSavePanelを使用して...また、パネルを開いて使用しない場合... [キャンセル]ボタンをクリックすると、アプリが閉じなくなります...赤いxをクリックしてアプリを閉じると、ウィンドウは消えますが、アプリはアクティブなままで、メインウィンドウを元に戻す方法はありません。txtファイルを保存するために使用しているコードは次のとおりです。

NSSavePanel *save = [NSSavePanel savePanel];

if (nomePartita != nil) 
{
    [save setNameFieldStringValue:nomePartita];
}

[save setAllowedFileTypes:[NSArray arrayWithObject:@"dat"]];
[save setAllowsOtherFileTypes:NO];

NSInteger result = [save runModal];    

if (result == NSOKButton)
{
 // code to save the file here.....
 }

問題はこの行にあるはずです。これだけで(つまり、txtファイルを作成して保存するための残りのコードがない場合)私はこの問題を抱えています...誰もがこれが起こっている理由の手がかりを持っていますか?ヒントは大歓迎です!どうもありがとう、平和、マッシー

4

1 に答える 1

0

これを試して:

   NSSavePanel*    panel = [NSSavePanel savePanel];
   [panel setNameFieldStringValue:newName];
   [panel beginSheetModalForWindow:[self window] completionHandler:^(NSInteger result){
        if (result == NSFileHandlingPanelOKButton)
        {
            NSURL*  theFile = [panel URL];
            // Write the contents in the new format.
        }
}];

私は同じ問題に直面し、これで解決しました。ウィンドウの場合は、代わりに[NSAppkeyWindow]を使用できます。

サンドボックスを使用したAppleガイドライン

于 2012-06-22T15:18:46.793 に答える