2010-05-18 11 views
5

webview in core animation layerLayering Cocoa WebView - Zeichnung oben?

Der einzige andere Thread, den ich finden kann, ist das oben genannte, das nicht unbedingt meine Bedürfnisse erfüllt. Gibt es eine zuverlässige Möglichkeit, einfach eine Ansicht über eine Webansicht zu zeichnen? Ich habe versucht, ein normales NSView über WebView zu schichten, und es zeichnet zuerst direkt, aber jede Bewegung in der Webansicht (Scrollen der Seite usw.) scheint die Ansicht ungültig zu machen und visuelle Artefakte zu erzeugen.

Ich habe versucht:

[[[NSApp mainWindow] contentView] addSubview:view positioned:NSWindowAbove relativeTo:webView]; 

Kein Glück gibt, gleiche Probleme - z-Ordnung nicht zu funktionieren scheint, wenn ich etwas fehlt bin.

Ist dies nur eine Einschränkung von Webviews?

Ich habe auch versucht, die Ansicht oben als ein Fenster zu implementieren, die viel besser funktionierte (nur die Position des Fensters programmgesteuert gesteuert). Das gewünschte Verhalten besteht jedoch darin, dass der Benutzer etwas Text in dieses Fenster eingibt, aber nicht "Fokus" stehlen soll - dh das Hauptfenster wird inaktiv (das x - + wird grau), wenn der Benutzer auf das Textfeld klickt im neuen Fenster. Irgendeine Möglichkeit, das zu vermeiden?

Ich habe versucht, NSWindow Unterklasse und überschreiben CanBecomeKey (return YES) und canBecomeMain (NO zurückgeben), aber das Fenster stiehlt immer noch Fokus.

EDIT: Ich weine :-(Ich kann nicht einen Weg über die Zeichnung über Webkit-Ding herausfinden. Ich habe andererseits eine Möglichkeit gefunden, das Hauptfenster meiner App zu zwingen, aktiven Zustand zu behalten Obwohl es ein Popup-Fenster mit dem Schlüsselstatus gibt, hat es jedoch unbeabsichtigte Konsequenzen, wenn die Texteingabe im Popup-Dialog verwendet wird (der in den Schlüsselfensterzustand gezwungen werden muss.) Backspace funktioniert nicht: shakes head :: und Mausereignisse auf die webkit Ansichten nicht unter verteilt zu werden (für per mouse over auf in den hTML-Code eingebetteten Komponenten). Craptacular.

Josh

+0

Haben Sie versucht, Ihre Ansicht als Unteransicht der Webansicht hinzuzufügen? –

+0

Nein, das funktioniert auch nicht – strange

Antwort

2

Ein bisschen spät, aber ich schlug meinen Kopf auf das gleiche Problem und zwei Jahre nach dem q Ich konnte die Antwort immer noch nicht finden. In meinem Fall löste ich mit wantLayer = YES in der Ansicht, die ich über das WebView zeichnen wollte, das Problem.

+0

Das hat auch für mich funktioniert, danke! – starkos