Ho un'applicazione mac cacao con una webview che contiene del testo. Vorrei cercare attraverso quel testo usando la barra di ricerca predefinita fornita da NSTextFinder. Per quanto possa sembrare semplice leggere il riferimento alla classe NSTextFinder, non riesco a far apparire la barra di ricerca. Cosa mi manca?Come faccio a visualizzare NSTextFinder
Come sidenote:
- Sì, ho provato a installare findBarContainer ad una visione diversa, stessa cosa. Sono ritornato indietro alla vista di scorrimento per eliminare la complessità debug
- performTextFinderAction è chiamato a eseguire l'operazione di ricerca
**App Delegate:**
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
self.textFinderController = [[NSTextFinder alloc] init];
self.webView = [[STEWebView alloc] initWithFrame:CGRectMake(0, 0, self.window.frame.size.width, 200)];
[[self.window contentView] addSubview:self.webView];
[self.textFinderController setClient:self.webView];
[self.textFinderController setFindBarContainer:self.webView.enclosingScrollView];
[[self.webView mainFrame] loadHTMLString:@"sample string" baseURL:NULL];
}
- (IBAction)performTextFinderAction:(id)sender {
[self.textFinderController performAction:[sender tag]];
}
**STEWebView**
@interface STEWebView : WebView <NSTextFinderClient>
@end
@implementation STEWebView
- (id)initWithFrame:(NSRect)frame
{
self = [super initWithFrame:frame];
if (self) {
}
return self;
}
- (void)drawRect:(NSRect)dirtyRect
{
// Drawing code here.
}
- (NSUInteger) stringLength {
return [[self stringByEvaluatingJavaScriptFromString:@"document.documentElement.textContent"] length];
}
- (NSString *)string {
return [self stringByEvaluatingJavaScriptFromString:@"document.documentElement.textContent"];
}
Mi sono imbattuto in questa domanda durante la ricerca se webview può essere paierd con un NSTextFinder. Per quanto posso vedere, questo risolve un problema più semplice in cui il testo nella visualizzazione Web è semplice. La discussione sul problema più generale è su http: //www.cocoabuilder.it/archive/cacao/327153-webview-find-panel-bar-implementation.html e http://stackoverflow.com/questions/4601671/how-to-i-highlight-search-results-in-a-webview- like-safari-and-nstextview-showfi – Nickolay