In Safari e in un NSTextView su OSX, i risultati della ricerca possono essere evidenziati con una casella gialla brillante con un piccolo pop animato. C'è un modo per farlo in una webview senza codificarlo da solo?Come evidenziare i risultati della ricerca in una visualizzazione Web come Safari e NSTextView showFindIndicatorForRange:
risposta
Ho trovato un modo per farlo.
Vedere showFindIndicatorForRange:.
showFindIndicatorForRange: è un metodo di NSTextView. Ho bisogno di questa funzionalità in una WebView. Sto evidenziando il testo usando i metodi in WebView ma non ho l'animazione. C'è probabilmente una soluzione javascript ma non l'ho esaminata. –
Oh, mio male. Mi dispiace, ho letto male la tua domanda. – Donovan
La risposta (a partire dal 2013-05) sembra essere che è necessario evidenziare manualmente i risultati di ricerca nella visualizzazione Web (rif: "Implementing a Find menu item like Safari?" thread from 2011), anche se è un long-planned webkit feature.
Elencherò i collegamenti che ho trovato durante la ricerca di questo.
- C'è HighlightedWebView ma al momento della scrittura appare inserire
<span>
s per evidenziare i termini di ricerca. - non riuscivo a trovare una risposta su come imitare questo effetto con Core Animation:
- Core animation - Safari Find effect di cacao-dev ha una panoramica della soluzione, ma nessun codice
- https://stackoverflow.com/questions/12187511/mimicking-showfindindicatorforrange-with-calayer qui su SO non ha risposte
- su WebView e NSTextFinder (lo standard di interfaccia barra di ricerca):
- How do I get NSTextFinder to show up qui su SO è in relazione, ma non è così sembra che riguardi questo esatto problema
- NSTextFinder reference (il "Testo Vedi Il supporto per l'Trova Bar" sezione) suggerisce che possa disegnare "la gialla ritrovamento spia sfondo lunetta" per qualsiasi NSView/NSScrollView se supporta NSTextFinderClient (che WebView non lo fa - rif .: [1] , [2]).
- "WebView find panel/bar implementation" su cocoa-dev è il thread più recente (2013-04) su questo e contiene una panoramica della possibile soluzione.
Date un'occhiata a questo open source WebView sottoclasse (MIT License) che incorpora il supporto NSTextFinder:
https://github.com/shc-vj/SHCWebView
così come la stessa fonte WebKit per il suo Test App MiniBrowser:
https://github.com/WebKit/webkit/blob/master/Tools/MiniBrowser/mac/WK2BrowserWindowController.m
finestra controll del MiniBrowser er implementa NSTextFinderBarContainer in modo che non debba mettere la sua WebView all'interno di una scrollview altrimenti superflua affinché la barra di ricerca funzioni.
Ciao Mike. Hai avuto successo in questo? – Donovan