gpt4 book ai didi

objective-c - WebView变化时调用函数

转载 作者:行者123 更新时间:2023-12-03 17:41:56 25 4
gpt4 key购买 nike

所以,我一直在查看文档和谷歌搜索,但我不知道当我的WebView(OSX,而​​不是iOS)发生变化时如何调用方法......所有示例似乎都是针对iOS的。我的代码如下所示:

SNAFAppDelegate.h

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

@interface SNAFAppDelegate : NSObject <NSApplicationDelegate>

@property (assign) IBOutlet NSWindow *window;

@property (assign) IBOutlet WebView *browser;

- (IBAction)forwards:(id)sender;


@end

SNAFAppDelegate.m

#import "SNAFAppDelegate.h"

@implementation SNAFAppDelegate

@synthesize window = _window;
@synthesize browser = _b;

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
[[_b mainFrame] loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"https://google.com"]]];
}

@end

SNAFBrowser.h

#import <Cocoa/Cocoa.h>
#import <WebKit/WebView.h>
#import <WebKit/WebFrame.h>
#import <WebKit/WebEditingDelegate.h>
#import <WebKit/WebKit.h>


@interface SNAFBrowser : WebView

@property (assign) IBOutlet WebView *browser;

@end

SNAFBrowser.m

#import "SNAFBrowser.h"

@implementation SNAFBrowser

@synthesize browser = _b;

- (void)webViewDidChange:(NSNotification *)notification
{
NSLog(@"Hello World");
}

@end

然后,在我的 MainMenu.xib 文件中,我将 AppDelegate 中的 Outlet“浏览器”链接到 WebView,并将 WebView 的自定义类设置为 SNAFBrowser。

本质上,我只是想知道 webview 何时加载另一个页面。

我可能正在做一些可笑的愚蠢的事情,因此我们将不胜感激。

最佳答案

实现WebFrameLoadDelegate协议(protocol),并查看哪些方法适合实现,例如 webView:didFinishLoadForFrame:

示例:

@interface SNAFBrowser : WebView <WebFrameLoadDelegate>
...
@end

@implementation SNAFBrowser
- (void)webView:(WebView *)sender didFinishLoadForFrame:(WebFrame *)frame
{
NSLog(@"Something got loaded!");
}
...
@end

关于objective-c - WebView变化时调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10673522/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com