WebView: UIDelegate wird nicht notifiziert, wenn NSWindow modal ist

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • WebView: UIDelegate wird nicht notifiziert, wenn NSWindow modal ist

    Ich habe ein NSWindow und lasse darin eine Webseite mit Hilfe einer WebView anzeigen. In der Webseite werden Skripte ausgeführt, die Zugriff auf meine Applikation haben, um bestimmte Status-Informationen der Applikation auf der Webseite darzustellen.

    Bei Bedarf wird in der Webseite per Mausklick die JavaScript-Funktionen "window.close()" bzw. "window.open()" aufgerufen. Anhand dieser Aufrufe notifiziert die WebView den UIDelegate:

    Quellcode

    1. - (WebView *)webView:(WebView *)sender createWebViewWithRequest:(NSURLRequest *)request;
    2. - (void) webViewClose:(WebView *)sender;

    Hier kann ich nun das NSWindow schließen bzw. ein neues öffnen. Soweit so gut.

    Wenn ich jetzt aber das NSWindow mit [NSApp runModalForWindow:<NSWindow>] anzeigen lasse, dann kommen diese Notifizierungen von der WebView nicht an. Da kann ich in der Webseite rumklickern, bis ich schwarz werde, da passiert nix.
    Das Fenster müsste aber Modal angezeigt werden, damit die GUI meiner Applikation für diese Zeit gesperrt ist.

    Warum ist das so? Oder besser gefragt: Warum wird da überhaupt ein Unterschied zwischen "Modal" und "Nicht Modal" gemacht??