调整WebView实例的大小

时间:2013-11-10 02:57:26

标签: objective-c macos cocoa webview

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

经过一番挣扎后,我明白了如何抓住'窗口调整大小'事件,但我不知道如何根据Windows新大小调整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)]也会调整网页视图的大小,但似乎并非如此。

有任何提示/提示吗? WebView是否是正确的方法?谢谢你的帮助!

1 个答案:

答案 0 :(得分:6)

您需要将WebView部分设置为窗口contentView

[self.window setContentView:self.websiteWebview];

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