2

我刚刚开始学习 OSX Cocoa 应用程序开发。我想在本机 OSX 窗口中显示一个网站。我认为 WebView 将是正确的方法。我希望 webview 始终占据包含窗口大小的 100%。

经过一番挣扎后,我了解如何捕捉“窗口调整大小”事件,但我不知道如何根据窗口新大小调整 Web 视图的大小。

这是我到目前为止所拥有的:

AppDelegate.h

#import <Cocoa/Cocoa.h>
#import <WebKit/WebKit.h>

@interface AppDelegate : NSObject <NSApplicationDelegate, NSWindowDelegate>

@property (assign) IBOutlet NSWindow *window;

@property (weak) IBOutlet WebView *websiteWebview;

@end

AppDelegate.m

#import "AppDelegate.h"

@implementation AppDelegate

- (NSSize) windowWillResize:(NSWindow *)sender toSize:(NSSize)frameSize
{
    WebView *view = [self websiteWebview];
    [view setFrame:CGRectMake(0, 0, 1000, 1000)];
    return frameSize;
}

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    [[self window] setDelegate:self];
    NSURL *url = [[NSURL alloc] initWithString:@"http://conradk.com"];
    NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url];
    [[[self websiteWebview] mainFrame] loadRequest:request];
}

@end

我认为调用[view setFrame:CGRectMake(0, 0, 1000, 1000)]也会调整 Web 视图的大小,但似乎并非如此。

请问有什么提示/提示吗?WebView 是正确的方法吗?谢谢你的帮助!

4

1 回答 1

6

您需要成为WebView窗口的一部分contentView

[self.window setContentView:self.websiteWebview];

默认情况下,这将让webView窗口自动调整大小。如果你想让 webview 做一些事情而不是匹配窗口的大小,你只需要弄乱大小。

于 2013-11-10T03:20:42.623 回答