私が実際にやっていることは、WebKitViewをスクリーンセーバー(これはNSViewを継承しています)に置くことです。私はMacOS XとCocoaを全く新しくしています(しかし、私はObjective-Cに精通していて、GNUStepの一部を使いました)。レイティングが必要なのですか? NSView全体で1つのコントロールしか表示しません。あなただけのUIWebViewが独自にフルスクリーンを取ることができますとき通常のコントロールをNSViewにどのように入れますか?
答えて
、the usual wayでのWebViewを作成し、自分自身にaddSubview:
メッセージを送信し、ウェブビューを渡す:
webView = [[WebView alloc] initWithFrame:frame];
[self addSubview:webView];
あなたはWebViewののフレームとして渡すべき長方形迷っている場合は、 View Programming Guideを読んでください。また、webView
をdealloc
(またはinitWithFrame:isPreview:
で自動リリース)にリリースすることを忘れないでください。
ウェブビューを取得したら、そのページにページを読み込む必要があります。適当に長いアニメーション間隔(秒の少なくともカップル)を設定し、animateOneFrame
でページを読み込む:
- (void) animateOneFrame {
[[webView mainFrame] loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://google.com/"]]];
}
あなたはまた、(WebViewProgressFinishedNotification
を扱いたい、そしてそれが起こるまで、再ロードするWeb表示をオフに置いてもよいです遅いまたは浸漬された接続を補うため)。あなたはinitWithFrame:isPreview:
とあなたの通知ハンドラメソッド、およびテストの両方にYES
に設定し、animateOneFrame
にNO
に設定したインスタンス変数、でこれをやる:
- (void) animateOneFrame {
if (hasFinished) {
[[webView mainFrame] loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://google.com/"]]];
hasFinished = NO;
}
}
[aScreenSaverView addSubview:aWebKitView];
しかし、なぜ、スクリーンセーバービューへのUIWebViewを追加しますか?ビュー階層を必要としない場所に導入することは、インターフェースを表示するのに必要な処理を増やすため、良い考えではありません。その後、あなたのinitWithFrame:isPreview:
方法で
私は[aScreenSaverView addSubview:aButton]を試しましたが、動作しませんでした。私が何かを見逃しているのか、Webkitのビューはちょっとクールなボタンなのでしょうか? UIWebViewを全画面表示にすることについて、あなたが言うことを理解していません。スクリーンセーバーはスクリーンセーバーを継承しなければなりませんか? – Pablo
彼はiphoneアプリケーションではなく、スクリーンセーバーフレームワークからスクリーンセーバーを書いています。 –
ああ、私の悪いです。あなたの質問を誤解しているはずです。謝罪。 –
あなたはまた、あなたについてはあまり心配することはできませんあなたのanimateOneFrame
メソッドの終了時に
[self stopAnimation];
を呼び出してアニメーション間隔を設定します。
私はスクリーンセーバーが何でもできるので私はちょうど始まっています。 XcodeとScreen Saver Standard Appleプラグインで作成しましたが、プロジェクトにはnibまたはnixファイルはなく、View.hとView.mだけが付属しています。 nibファイルを使って作業することができれば幸いですが、どうすればいいですか? ありがとうございました。 – Pablo
申し訳ありませんが、私はScreenSaverフレームワークで作業して以来、長い時間が経ちました。私は私の答えを編集しました。 –
答えをありがとう、有望に見えます。 – Pablo