Я пытался добавить HTML-контент в веб-представление, но, похоже, ничего не получил.Документация Apple очень скудна, и из нескольких примеров, которые я нашел онлайн , я не могу заставить их работать.Насколько я могу судить, это то, как это должно работать, но не работает.
Для начала у меня есть очень простой HTML-документ, который я загружаю в веб-просмотр.Я пытаюсь добавить некоторое HTML-содержимое в #container div
<!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 я загружаю базовый HTML-документ, пытаюсь получить контейнер div и вставить в него новый HTML-элемент с именем класса «test»,Который, согласно 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.Если у кого-нибудь есть указатели, я бы хотел их услышать.Это сводит меня с ума.