Cocoa WebKit: rilevamento del rollover / hover CSS
Domanda
Ho un WebView che visualizza una pagina HTML, che si collega a un file CSS.
Il file CSS utilizza le pseudoclass: active e: hover per gli effetti di rollover.
Q. Come posso sapere, nel mio WebView, quando sono stati chiamati: active e: hover? Vorrei intercettare queste chiamate e agire su di esse in modo programmatico all'interno di Cocoa.
Grazie.
Soluzione
: attivo e: hover non sono chiamate; sono pseudo-classi CSS, da utilizzare nei selettori CSS. Li usi in CSS per selezionare elementi per lo stile. Sono aggettivi, non verbi.
Prova invece ad aggiungere gestori di eventi JavaScript agli elementi. Puoi utilizzare un oggetto WebScript per proiettare alcuni dei tuoi metodi Cocoa nello spazio JavaScript per l'utilizzo dai gestori di eventi.
Altri suggerimenti
Sto cercando nei documenti SDK 2.2 e non vedo nulla nel protocollo UIWebViewDelegate
. La migliore speranza di realizzare questo forse è il metodo di istanza in UIWebView
chiamato stringByEvaluatingJavaScriptFromString
. Sfortunatamente ciò implicherebbe probabilmente un qualche tipo di polling, in quanto non sembra esserci alcun modo per definire un metodo Objective-C che JavaScript possa richiamare per un tale evento. Potrei sbagliarmi, ma non credo che si possa fare (in 2.2).