【发布时间】:2026-01-10 20:25:02
【问题描述】:
我刚刚开始学习 OSX Cocoa 应用程序开发。我想在本机 OSX 窗口中显示一个网站。我认为 WebView 将是正确的方法。我希望 webview 始终占据包含窗口大小的 100%。
经过一番挣扎,我明白了如何捕捉“窗口调整大小”事件,但我不知道如何根据窗口新大小调整网络视图的大小。
这是我目前所拥有的:
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 是正确的方法吗?感谢您的帮助!
【问题讨论】:
-
您的网页视图根本没有调整大小?还是调整大小错误?
-
它根本没有调整大小。更准确地说,如果我使窗口水平变大,webview 会转到窗口的左下方(但宽度和高度保持不变)。对于任何其他类型的调整大小,什么都不会发生。在所有情况下,webview 的大小都保持不变。
标签: objective-c macos cocoa webview