WebコンテンツにHTMLコンテンツを追加しようとしましたが、結果が得られないようです。アップルのドキュメントは非常に疎で、fewの例のうち、私が見つけたのはonlineなので、私はそれらのどれも働かないようです。私が知る限り、これはどのように動作するはずですが、そうではありません。Cocoa WebviewにHTML要素を追加する方法
開始するには、非常にシンプルなHTML文書をWebビューに読み込みます。 #container divにいくつかのHTMLコンテンツを追加しようとしています
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>HTML TEST</title>
<style type="text/css">
.test {
display: block;
border: #000 1px solid;
width: 100px;
height: 100px;
background-color: #0F0;
}
</style>
</head>
<body>
<p>hello world</p>
<div id="container"></div>
</body>
</html>
WebViewはカスタムビューの中にあります。ヘッダーはとてもまっすぐです。
// NodeTest.h
#import <Cocoa/Cocoa.h>
#import <WebKit/WebKit.h>
@interface NodeTest : NSView
@property (nonatomic, retain) IBOutlet WebView *webview;
@end
だから、awakefromnibに、私は、コンテナのdivを取得し、クラス名「テスト」で、その中に新しいHTML要素を挿入しようとする基本的なHTMLドキュメントをロードします。どのHTMLファイルによれば、黒い枠線があり、緑色で塗りつぶされ、100x100pxでなければなりません。
#import "NodeTest.h"
@implementation NodeTest
@synthesize webview;
- (id)initWithFrame:(NSRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code here.
}
return self;
}
- (void) awakeFromNib {
// Load the HTML document into the webview
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"TestDocument" ofType:@"html"]];
NSURLRequest *req = [NSURLRequest requestWithURL:url];
[[webview mainFrame] loadRequest:req];
[webview setEditable:YES];
DOMDocument *domDoc = [[webview mainFrame] DOMDocument];
// Get the container div. I've tried this with and without '#'
DOMHTMLElement *container = (DOMHTMLElement *)[domDoc getElementById:@"container"];
// Create a new HTML element
DOMHTMLElement *myDiv = (DOMHTMLElement *)[domDoc createElement:@"div"];
[myDiv setInnerHTML:@"<p>Boo!</p>"];
[myDiv setClassName:@"test"];
// Add the element to the container div
[container appendChild:myDiv];
[webview setNeedsDisplay:YES];
}
- (void)drawRect:(NSRect)dirtyRect
{
// Drawing code here.
}
@end
HTMLコンテンツをWebViewに読み込んでも問題ありません。それはすべてそこにある。しかし私は私の人生で新しいHTML要素を追加する方法を理解できません。もし誰かがポインタを持っていれば、私はそれらを聞くのが大好きです。これは私を怒らせる。
ありがとう、ありがとう。私は簡単なルートを使い、HTML要素を作成するためのボタンを追加しました。これについて考えてみると、私が試した最初のものの1つであったはずです。 – gargantuan