Webページを読み込んでいる状態がわかるように NSProgressIndicator を使って状態を表示する。
Cocoaはやっぱり!
インターネットにアクセスしよう
Web Kit #5 : ページタイトルとURLを表示
によれば Cocoa Bindings を使い Interface Builder で WebView と NSProgressIndicator をバインドするだけで良いと書いてある。
試してみたが NSProgressIndicator のバインド先一覧に WebView が出てこない。
ネットで探してみると、どうも Interface Builder 3 から仕様が変わったらしい。
Cocoa-dev
WebView does not expose bindings in IB 3
仕方が無いのでバインドをあきらめ、実装コードを書く事にする。
Cocoaの日々
WebKit検証(2) - プログレスバー
以前、自分で書いたコードを参考にしつつコードを書く。
こんな感じ。
WebController.h
@interface WebController : NSObject {
IBOutlet NSProgressIndicator* _progress_indicator;
}
@end
コントローラを一つ用意し、InterfaceBuilder でアウトレットに NSProgressIndicator を接続しておく。
WebController.m
#import "WebController.h"
#import <WebKit/WebKit.h>
@implementation WebController
- (void)awakeFromNib
{
NSNotificationCenter* nc = [NSNotificationCenter defaultCenter];
[nc addObserver:self
selector:@selector(progressStarted:)
name:WebViewProgressStartedNotification
object:nil];
[nc addObserver:self
selector:@selector(progressFinished:)
name:WebViewProgressFinishedNotification
object:nil];
}
- (void)progressStarted:(NSNotification *)notification
{
[_progress_indicator startAnimation:self];
}
- (void)progressFinished:(NSNotification *)notification
{
[_progress_indicator stopAnimation:self];
}
@end
実行してみよう。
回った。