2009-06-18 6 views
0

Ich habe ein WebView, das eine HTML-Seite anzeigt, die mit einer CSS-Datei verknüpft ist.Cocoa WebKit - Erkennen von CSS-Rollover/Hover

Die CSS-Datei verwendet die Pseudoklassen: active und: hover für Rollover-Effekte.

Q. Wie kann ich in meiner WebView feststellen, wann: active und: hover aufgerufen wurden? Ich möchte diese Aufrufe abfangen und sie programmatisch in Cocoa umsetzen.

Danke.

Antwort

2

: aktiv und: Hover sind keine Anrufe; Sie sind CSS-Pseudoklassen zur Verwendung in CSS-Selektoren. Sie verwenden sie in CSS zu wählen Elemente zu stylen. Sie sind Adjektive, keine Verben.

Versuchen Sie stattdessen JavaScript-Ereignishandler zu den Elementen hinzuzufügen. Sie können ein WebScriptObject verwenden, um einige Ihrer Cocoa-Methoden in den JavaScript-Bereich zu projizieren, damit sie von den Ereignisprozeduren verwendet werden können.

+0

Ja was er gesagt hat. : aktiv ist nur onmousedown und: hover ist onmouseover, mehr oder weniger – SpliFF

+0

Danke für die Hilfe. Ich ging mit dem WebScriptObject-Ansatz, Aufruf von MyCococa-Code auf mouseOver und onClick Event-Handler. Prost. – SirRatty

-1

Ich suche in der 2.2 SDK-Dokumentation, und ich sehe nichts in der UIWebViewDelegate Protokoll. Die beste Hoffnung, dies zu erreichen, ist vielleicht die Instanz-Methode in UIWebView namens stringByEvaluatingJavaScriptFromString. Leider würde dies wahrscheinlich eine Art von Polling implizieren, da es anscheinend keine Möglichkeit gibt, eine Objective-C-Methode zu definieren, auf die JavaScript für ein solches Ereignis zurückgreifen könnte. Ich könnte mich irren, aber ich denke nicht, dass es getan werden kann (in 2.2).

+2

"2.2 SDK"? : hover, insbesondere, würde auf einem Touch-basierten Gerät nicht viel Sinn machen. Ich denke, es ist vernünftig anzunehmen, dass der Fragesteller über den Mac spricht. –

Verwandte Themen