3

Mac用のWebKitベースのテキストエディタアプリを作成しています。ドキュメントをズームインおよびズームアウトする方法を見つける必要があります。

このStackOverflowの記事をここで見ましたが、Webkitがレンダリングされるビューをスケーリングすることを提案しています。問題は、Webkitがそれを認識していないため、ドラッグアンドドロップなどが機能しなくなり、Javascriptが間違ったカーソル位置を報告することです。残念ながら、何らかの理由で、Cocoa WebKit APIは、ページ全体ではなく、テキストの拡大または縮小のみをサポートしています。

SafariとChromeはどちらもこれを適切に行うことができます。Chromiumのソースコードを調べて、それがどのように行われるかを理解しましたが、残念ながら、まったく異なるクロスプラットフォームAPIを使用しています。

アドバイスをいただければ幸いです。安全な方法でプライベートAPIを使用する方法を理解できれば、私はプライベートAPIの使用に反対していません。

-キートン

4

1 に答える 1

4

これを行うための API は現在公開されていませんが、何年も前から存在しており、変更される可能性はありません。それらは WebKit のWebViewPrivate.hヘッダーにあります。システムでそのヘッダーが見つからないため、これらのメソッドをカテゴリで自分で再宣言する必要があります。何かのようなもの:

@interface WebView (Zoom)
- (IBAction)zoomPageIn:(id)sender;
- (IBAction)zoomPageOut:(id)sender;
- (IBAction)resetPageZoom:(id)sender;
@end

もう 1 つのオプションは、エディターで要素にCSSzoomプロパティを設定することです。これは、マークアップ ( ) または JavaScript ( )htmlで行うことができます。プライベート API を使用する必要はありません。<html style="zoom: 1.5">document.documentElement.style.zoom = "1.5"

于 2013-06-13T03:07:19.963 に答える