我正在尝试捕获webview正在向用户显示的图像,因此我可以对网页进行一些颜色分析.当我试图从它的父母那里获取图像时,我基本上得到一个白色的盒子,即使页面已呈现:
func makeImageSnapshot()-> (NSImage)
{
let imgSize = self.view.bounds.size
let bir = self.viewbitmapImageRepForCachingDisplayInRect(self.webView!.view.bounds)
bir.size = imgSize
self.webView.cacheDisplayInRect(self.view.bounds, toBitmapImageRep:bir)
let image = NSImage(size:imgSize)
image.addRepresentation(bir)
self.image = image
return image
}
func saveSnapshot()
{
let imgRep = self.image!.representations[0]
let data = imgRep.representationUsingType(NSBitmapImageFileType.NSPNGFileType, properties: nil)
data.writeToFile("/tmp/file.png", atomically: false)
}
Run Code Online (Sandbox Code Playgroud)
在我看来,我无法访问webView内部的实际视图(在本例中为边界)的属性.当我尝试访问它时,编译器barfs:
/Users/josh/Canary/MacOsCanary/canary/canary/Modules/Overview/Overview.swift:55:37:'(NSView!,stringForToolTip:NSToolTipTag,point:NSPoint,userData:UnsafePointer <()>) - > String! " 没有名为'bounds'的成员
我的猜测是,由于OS X和iOS使用的扩展方法,这种情况正在发生.任何想法,还是我应该回到使用旧版WebView?
swift ×1