Smooth NSWindow调整大小:WKWebView的contentSize

时间:2017-08-30 19:10:23

标签: swift wkwebview nswindow window-resize

目前,要调整contentView为Web视图的窗口,请执行以下操作:

let oldSize = webView.window?.contentView?.bounds.size
let webSize = <new asset size>
if oldSize != webSize, var origin = self.webView.window?.frame.origin {
    origin.y += ((oldSize?.height)! - webSize.height)
    webView.window?.setContentSize(webSize)
    webView.window?.setFrameOrigin(origin)
    webView.bounds.size = webSize
 }

这很好但是在contentSize更改和对视觉原点的重新定位之间有时会出现延迟。尝试使用setFrame:是偶然的结果是内容大小偏差。

是否有办法缓冲此类窗口操作以影响平滑过渡。什么时候涉及WKWebView?

顺便说一句,在随后的评论中,这是webView在其视图中使用的方法:

func fit(_ childView: NSView, parentView: NSView) {
    childView.translatesAutoresizingMaskIntoConstraints = false
    childView.topAnchor.constraint(equalTo: parentView.topAnchor).isActive = true
    childView.leadingAnchor.constraint(equalTo: parentView.leadingAnchor).isActive = true
    childView.trailingAnchor.constraint(equalTo: parentView.trailingAnchor).isActive = true
    childView.bottomAnchor.constraint(equalTo: parentView.bottomAnchor).isActive = true
}

1 个答案:

答案 0 :(得分:0)

调整NSWindow大小时,这种WKWebView的大小调整滞后可能与在启动窗口时使用fullSizeContentView styleMask或在界面设计器中启用“完整内容视图”有关。