2012-04-05 13 views
1

Wenn ich Sandboxing in einer Mac-App verwende, klicke ich auf einen Menüpunkt "Export", es sollte einen Dialog mit NSOpenPanel öffnen, tut es aber nicht. Hier ist der Code, den ich habe:Mac apps SandBox: mit NSOpenPanel hat einen Fehler über NSRemoteOpenPanel

[playExportPanel beginSheetModalForWindow:mainWindow 
         completionHandler: ^(NSInteger result) { 
    if(result == NSFileHandlingPanelOKButton) { 
      .... 
    } 
}] 

Es löst eine Ausnahme: -[NSRemoteOpenPanel close]: unrecognized selector sent to instance. Was ist NSRemoteOpenPanel? Hat das jemand schon mal gesehen?

+0

Ich sehe das auch. – JanX2

Antwort

2

Ich habe gerade dieses Problem in meiner eigenen App behoben. Ich entfernte die [sheet close];. Dann habe ich es später durch [sheet orderOut:self]; ersetzt. Letzteres mag in Ihrem Fall nicht notwendig sein. In meinem Code kann ein Fehlerblatt aus dem Blockcode angezeigt werden, bevor es zurückkehrt. Dies würde zu gestapelten Blättern führen, die ich in dieser Konstellation nicht gerne habe: Sie sieht überladen aus.

Wahrscheinlich haben Sie nach "-beginSheetModalForWindow: completionHandler:" die veraltete API migriert und Ihren älteren Code erneut verwendet. Obwohl der Aufruf von -close entfernt wird, wird das Panel nach der Rückkehr des Blocks geschlossen. Dies ist wahrscheinlich ein Teil des Verhaltens der neuen API, aber ich muss das in der Dokumentation beschriebene noch finden.

+0

ja, es ist richtig, ich habe das Problem auf diese Weise behoben. Ich habe das [Blatt schließen] entfernt, dann ist es in Ordnung! Danke. –