objective-c - 调整 WebView 实例的大小

标签 objective-c macos cocoa webview

我刚刚开始学习 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/

相关文章:

ios - UIPageViewController 和 NSURLConnection 是在后台加载 vc 的正确类吗?

macos - 如何让 NSTextFieldCell 接受键盘复制/粘贴(cmd+c/cmd+v)

cocoa - 在系统范围内更改 cocoa 单词补全 - 可能吗?

objective-c - 从库中调用类别方法时出现 "unrecognized selector sent to class"

php - iphone 应用程序 - Mysql 数据库连接不起作用

iphone - UIButton 不执行电话调用

ios - 如何确定 QuickType 聊天是否已关闭?

macos - 如何在 Cython 中链接 Mac OS 框架

c++ - OpenCV imshow 不在 osx 中显示图像

cocoa - 强制 NSDocument 创建后保存