WebView内の特定のテキストセグメントを強調表示する必要があります。これまで、私は[webView stringByEvaluatingJavaScriptFromString:jscript]を使用してJavaScriptをwebviewに挿入することでこれを行ってきました。 javascriptは、背景色を黄色に変更するテキストにタグを追加します。これは通常動作しますが、タグが挿入されたときにhtmlが破損することがあります。むしろWebViewで - (void)changeAttributes:(id)senderメソッドを使用します。これは、理解しているように、基になるHTMLを壊さない方法でスタイルを適用します。これを行うには、最初にWebViewでプログラムでテキスト属性を変更するにはどうすればよいですか?
[webView searchFor:aString direction:YES caseSensitive:NO wrap:YES];
を選択してください。 、黄色に選択したテキストの背景色を変更する必要があり
- (NSDictionary *)convertAttributes:(NSDictionary *)attributes {
NSMutableDictionary *newAttrs = [[NSMutableDictionary alloc] initWithDictionary:attributes];
NSColor *background = [NSColor yellowColor];
[newAttrs setValue:background forKey:NSBackgroundColorAttributeName];
return newAttrs;
}
:それから私は私が私のWebViewのインスタンスにこのメッセージを送信すると、それはこのメソッドを呼び出します
[webView changeAttributes:self];
を呼び出しますしかしそれはしません。標準のCocoaテキスト属性はWebviewに適用されますか?このメソッドは、この目的のために使用することを意図していますか、または私はjavascriptに戻る必要がありますか?
DOMを使ってこれを行うのが良いですが、私はより良いjavascriptソリューションを見つけました:document.designMode = \ "on \"; document.execCommand(\ "backcolor \"、false、\ " "yellow \"); document.designMode = \ "off \"; –