我正在开发一个C++应用程序,我需要显示一个NSWindow与WebKit WebView里面。我编写了Objective-C类,它将管理创建和显示窗口,但其中包含的WebView不会显示。这是我的代码。关于什么是错的,以及我如何解决它的任何想法?WebView不显示在NSWindow
我编译下面的代码与 $克++ -x目标C++ -framework可可-framework的WebKit Foo.m的main.m -o测试
foo.h中
#import <Cocoa/Cocoa.h>
#import <WebKit/WebKit.h>
@interface Foo :NSObject {
NSWindow *window;
WebView *view;
}
- (void)displayWindow;
@end
Foo.m
#import "Foo.h"
@implementation Foo
- (id)init {
self = [super init];
// Window Container
window = [[NSWindow alloc] initWithContentRect:NSMakeRect(500.0f,500.0f,250.0f,250.0f)
styleMask:NSBorderlessWindowMask
backing:NSBackingStoreNonretained
defer:NO];
// WebView
view = [[WebView alloc] initWithFrame:NSMakeRect(0, 0, 250.0f, 250.0f)
frameName:@"Frame"
groupName:nil];
[[view mainFrame] loadHTMLString:@"<html><head></head><body><h1>Hello</h1></body></html>"
baseURL:nil];
return self;
}
- (void)displayWindow {
NSLog(@"In Display window");
[window setContentView:view];
[window setLevel:NSStatusWindowLevel];
[window orderFrontRegardless];
sleep(5); // leave it up for 5 seconds
}
- (void)dealloc {
[window release];
[super dealloc];
}
@end
的main.m
#import "Foo.h"
int main() {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
[NSApplication sharedApplication];
Foo *foo = [[Foo alloc] init];
[foo displayWindow];
[foo release];
[pool release];
return 0;
}
您能否在我的支持商店的评论中增加您的出色答案?我摸了一下头,为什么当我做了明显的事情时他的代码不起作用... – Yuji 2010-08-30 19:04:02
Yuji:很好。完成。 – 2010-08-30 22:13:40