我正在開發一個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