我刚刚开始学习 OSX Cocoa 应用程序开发。我想在 native OSX 窗口中显示一个网站。我认为 WebView 是正确的方法。我希望 webview 始终占据包含窗口大小的 100%。
经过一番努力,我明白了如何捕获“窗口调整大小”事件,但我不知道如何根据窗口的新大小调整网页 View 的大小。
这是我到目前为止所拥有的:
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 View 的大小,但事实似乎并非如此。
有什么建议/提示吗? WebView 是执行此操作的正确方法吗?感谢您的帮助!
最佳答案
您需要使 WebView
成为窗口 contentView
的一部分。
[self.window setContentView:self.websiteWebview];
默认情况下,这将使 webView
随着窗口自动调整大小。如果您希望 Web View 执行除匹配窗口大小之外的其他操作,则只需调整大小即可。
关于objective-c - 调整 WebView 实例的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19885771/