Cocoa中的Webkit页面缩放

时间:2012-06-25 18:08:07

标签: macos cocoa webkit

我正在为Mac制作一个基于WebKit的文本编辑器应用程序,我需要找到一种方法来放大和缩小文档。

我已经看过这篇StackOverflow文章here,它建议只扩展Webkit所呈现的视图。问题是,由于Webkit不知道它,这会打破像drag& amp; drop并导致Javascript报告错误的光标位置。不幸的是,出于某种原因,Cocoa WebKit API仅支持向上或向下缩放文本,而不支持整个页面。

Safari和Chrome都能够正确执行此操作。我已经尽可能地浏览了Chromium源代码以弄清楚它是如何完成的,但遗憾的是它使用的是完全不同的跨平台API。

任何建议都将不胜感激。我不反对使用私有API,如果我能弄清楚如何以安全的方式使用它们。

-Keaton

1 个答案:

答案 0 :(得分:4)

用于执行此操作的API目前尚未公开,但它们已存在多年且不太可能发生变化。您可以在WebKit的WebViewPrivate.h header中找到它们。您不会在系统上找到该标题,因此您必须自己在类别中重新声明这些方法。类似的东西:

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

另一种选择是在编辑器中的zoom元素上设置CSS html属性。您可以在标记(<html style="zoom: 1.5">)或JavaScript(document.documentElement.style.zoom = "1.5")中执行此操作。这不需要使用任何私有API。