【问题标题】:Scale WebView in Cocoa在 Cocoa 中缩放 WebView
【发布时间】:2011-01-12 00:01:42
【问题描述】:

如何缩放 WebView 的内容?

【问题讨论】:

    标签: cocoa webview scale


    【解决方案1】:

    Javascript 是你最好的朋友:

     [_webview stringByEvaluatingJavaScriptFromString:@"document.documentElement.style.zoom = \"0.5\""];
    

    【讨论】:

      【解决方案2】:

      或者您可以尝试以下方法:

      - (IBAction)takeZoom:(NSSlider *)sender {
          WebView *aWebView = [[window.contentView subviews] lastObject];
          NSView *clipView = [[[[aWebView mainFrame] frameView] documentView] superview];
          float scale = pow( 4, [sender floatValue] )/(clipView.frame.size.width/clipView.bounds.size.width);
          [clipView scaleUnitSquareToSize:NSMakeSize(scale, scale)];
          [clipView setNeedsDisplay:YES];
      }
      

      【讨论】:

      • 在剪辑视图中设置比例似乎是正确的方法。我太累了,不能这么努力,但是 Rob 上面的建议确实可以缩放,但也会扩大滚动内容区域,所以你会得到一个缩放的页面,但是在 web 视图的右侧有一个破碎像素的“人工制品游乐场” .我刚刚提取了上述例程的第 2、4、5 行,这似乎有效。我的报告视图在对话框面板中缩放为 Web 视图。谢谢流浪者!
      • 这对我很有用!接受的答案会被不恰当地剪掉。
      • 你们都发现缩放 documentView 的超级视图可以完美缩放?我看到剪裁正确且回流不正确。您是只缩放一次,还是重复缩放,如用户控制下的放大和缩小按钮?在这种情况下,scaleUnitSquareToSize 无法正常工作,我终于找到了这个 Apple Q&A,它提供了一些启发 developer.apple.com/library/mac/#qa/qa2004/qa1346.html,但仍然有问题。使用那里的类别,我基本上使用的是:clipView=[documentView superview]; clipView.scale=NSMakeSize(缩放,缩放); clipView.needsDisplay=YES;
      • 这看起来不错,但是 WebView 中的选择相对于鼠标光标是偏移的。
      【解决方案3】:

      您需要在要调整大小的单个框架的文档视图上调用-scaleUnitSquareToSize:,例如主框架:

      [[[[webView mainFrame] frameView] documentView] scaleUnitSquareToSize:NSMakeSize(1.5, 1.5)];
      [[[[webView mainFrame] frameView] documentView] setNeedsDisplay:YES];
      

      【讨论】:

      • 这会导致内容在视图边界的 1/1.5(即 2/3)处被裁剪,就像@Wanderer 确认的答案中的 cmets 一样。缩放 documentView 的 superView 也不起作用,因为鼠标指针不能正确工作(如另一个答案的 cmets 中所述)。所以,到目前为止(10.10.5)这里的答案都对我不起作用
      【解决方案4】:

      WebView 是 NSView,所以一种方法是 to send it a scaleUnitSquareToSize: message

      【讨论】:

      • 因为 WebView 实际上是一组相当复杂的托管嵌套视图,所以您实际上不能只在主 WebView 对象上调用 -scaleUnitSquareToSize:
      猜你喜欢
      • 2014-05-25
      • 1970-01-01
      • 1970-01-01
      • 2013-05-11
      • 1970-01-01
      • 2011-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多