Tôi có ứng dụng ca cao mac với chế độ xem web có chứa một số văn bản. Tôi muốn tìm kiếm thông qua văn bản đó bằng thanh tìm kiếm mặc định do NSTextFinder cung cấp. Dễ như điều này có vẻ như đọc qua tham chiếu lớp NSTextFinder, tôi không thể nhận được thanh tìm kiếm hiển thị. Tôi đang thiếu gì?Làm cách nào để nhận NSTextFinder hiển thị
Làm phụ trang:
- Có, tôi đã thử đặt findBarContainer thành một chế độ xem khác, cùng một điều. Tôi trở lại con người xem di chuyển để loại bỏ sự phức tạp trong việc gỡ lỗi
- performTextFinderAction được gọi để thực hiện các hoạt động tìm
**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"];
}
Tôi đã vấp vào câu hỏi này trong khi tìm kiếm xem webview có thể là paierd với NSTextFinder hay không. Theo như tôi thấy, điều này giải quyết một vấn đề dễ dàng hơn khi văn bản trong chế độ xem web đơn giản. Cuộc thảo luận về vấn đề chung hơn là tại http: //www.cocoabuilder.com/archive/cocoa/327153-webview-find-panel-bar-implementation.html và http://stackoverflow.com/questions/4601671/how-to-i-highlight-search-results-in-a-webview- like-safari-and-nstextview-showfi – Nickolay