可能重複:
I want highlight text on UIWebView爲什麼我得到這個錯誤?無法識別的選擇發送到實例
,我發現了錯誤調用-[UIWebView highlightAllOccurencesOfString:]
時 「無法識別的選擇發送到實例0x756cef0」。該選擇器在WBHighlight.h中聲明,並在WBSecondViewController.h中使用前向聲明。
WBSecondViewController.h
@class WBHighlight;
#import <UIKit/UIKit.h>
@interface WBSecondViewController : UIViewController <UIWebViewDelegate, UIScrollViewDelegate>
@property (weak, nonatomic) IBOutlet WBHighlight *webView;
- (IBAction)searchButtonPressed:(id)sender;
- (IBAction)clearHighlights:(id)sender;
@end
WBSecondViewController.m
#import "WBSecondViewController.h"
#import "WBHighlight.h"
@interface WBSecondViewController()
@end
@implementation WBSecondViewController
-(IBAction)searchButtonPressed:(id)sender{
NSLog(@"highlighttes");
[_webView highlightAllOccurencesOfString:@"cat"];
}
-(IBAction)clearHighlights:(id)sender{
[_webView removeAllHighlights];
}
WBHighlight.h
#import <UIKit/UIKit.h>
@interface WBHighlight : UIWebView{
}
- (NSInteger)highlightAllOccurencesOfString:(NSString*)str;
- (void)removeAllHighlights;
@end
WBHighlight.m
#import "WBHighlight.h"
- (NSInteger)highlightAllOccurencesOfString:(NSString*)str
{
NSString *path = [[NSBundle mainBundle] pathForResource:@"UIWebViewSearch" ofType:@"js"];
NSString *jsCode = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
[self stringByEvaluatingJavaScriptFromString:jsCode];
NSString *startSearch = [NSString stringWithFormat:@"uiWebview_HighlightAllOccurencesOfString('%@')",str];
[self stringByEvaluatingJavaScriptFromString:startSearch];
NSString *result = [self stringByEvaluatingJavaScriptFromString:@"uiWebview_SearchResultCount"];
return [result integerValue];
}
- (void)removeAllHighlights
{
[self stringByEvaluatingJavaScriptFromString:@"uiWebview_RemoveAllHighlights()"];
}
@end
有什麼想法?
,你改變了Web視圖對象類到'WBHighlight'? – tkanzakic
否。在WBSecondViewController.xib文件中,Web視圖與WBSecondViewController.h連接。 – hekiru
是的,沒關係,但你必須選擇網頁視圖,轉到身份檢查器(Cmd + Option + 3)並將'Class'屬性從'UIWebView'更改爲'WBHighlight',否則您將發送消息'highlightAllOccurencesOfString:'到'UIWebView'的實例,這個類不聲明這個方法 – tkanzakic