0

だから、私はドキュメントとグーグルを見てきましたが、私のWebView(iOSではなくOSX)が変更されたときにメソッドを呼び出す方法がわかりません...すべての例は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からWebViewにリンクし、WebViewのカスタムクラスをSNAFBrowserに設定しました。

基本的に、Webビューがいつ別のページをロードするかを知りたいだけです。

私はおそらくばかげて愚かなことをしているので、どんな助けでもありがたいです。

4

1 に答える 1

2

WebFrameLoadDelegateプロトコルを実装し、実装に適したメソッドを確認します。たとえば、webView:didFinishLoadForFrame:

例:

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

@implementation SNAFBrowser
- (void)webView:(WebView *)sender didFinishLoadForFrame:(WebFrame *)frame
{
   NSLog(@"Something got loaded!");
}
...
@end
于 2012-05-20T14:01:27.937 に答える