在我的Xcode游乐场中,我一直在尝试设置WebView / UIWebView,但无法预览iOS或OS X版本。 当我尝试运行iOS代码时,我在控制台中收到此错误:
nwi_state:注册失败(1000000)
一旦我实例化UIWebView,就会出现此错误。这是我的代码:
import UIKit
let wv = UIWebView(frame: CGRectMake(0, 0, 255, 255))
let url = NSURL(string: "http://www.google.com")
let req = NSURLRequest(URL: url!)
wv.loadRequest(req)
wv // This is for previewing in the Playground
使用Cocoa时,我的控制台没有出现任何错误,但我无法使用QuickLook图标或添加到我的时间轴来预览WebView。我的Cocoa代码:
import Cocoa
import WebKit
let mainWeb = WebView(frame: NSRect(x: 0, y: 0, width: 255, height: 255))
let url = NSURL(string: "http://www.google.com")
let req = NSURLRequest(URL: url!)
mainWeb.mainFrame.loadRequest(req)
mainWeb // This is for previewing in the Playground
我在OS X Yosemite 10.10.1上运行Xcode 6.1。我的互联网连接很好,据我所知,我没有修改任何可能导致此类问题的文件。可能是造成这个问题的原因是什么?
答案 0 :(得分:1)
用于在游乐场中预览视图的功能是XCPShowView(identifier: String,view: NSView/UIView)
。所以这将在OS X游乐场中运行:
import Cocoa
import WebKit
import XCPlayground
let mainWeb = WebView(frame: NSRect(x: 0, y: 0, width: 255, height: 255))
let url = NSURL(string: "http://www.google.com")
let req = NSURLRequest(URL: url!)
mainWeb.mainFrame.loadRequest(req)
XCPShowView("my web view", mainWeb)
似乎iOS游乐场必须在某个Xcode项目中才能使同样的事情发挥作用。此外,必须在该操场的文件检查器中检查'Run in Full Simulator'
选项。之后,网页视图将显示加载谷歌页面,但伴随着一些关于未能获得sanbox扩展的令人讨厌的错误消息。
答案 1 :(得分:0)
升级Ivica M.对Swift 3的回答:
import PlaygroundSupport
import WebKit
public let width = 568
public let height = 320
var ActionBlockKey: UInt8 = 0
public let container = UIView(frame: CGRect(x: 0, y: 0, width: width, height: height))
let mainWeb = WKWebView(frame: container.frame)
let url = URL(string: "https://www.google.com")
let req = URLRequest(url: url!)
mainWeb.load(req)
container.addSubview(mainWeb)
PlaygroundPage.current.liveView = container
PlaygroundPage.current.needsIndefiniteExecution = true