(XCode 6.3.2,Swift 1.2)我只是想将UIWebView的加载网页的URL放入UITextField中。我找到的解决方案here对我不起作用。
这是我的代码:
@IBOutlet weak var addressBar: UITextField!
@IBOutlet weak var webView: UIWebView!
//some more code...
func webViewDidFinishLoad(webView : UIWebView) {
self.addressBar.text = (self.webView.request?.URL.absoluteString)!
}
Swift编译器错误:可选类型'NSURL?'的值没有打开;你的意思是用'!'或'?'?
任何想法或提示都将非常感激。 感谢。
修改
Airspeed Velocity 的答案对我有用(参见下面的工作代码)。但是我发现有时加载的URL没有正确写回UITextField
例如,它可以在Vimeo上重现。
当我点击vimeo.com上的视频链接时,网址应更改为:https://vimeo.com/105060039
在移动Safari上,这可以正常工作但不在UIWebView上。对于网址“https://vimeo.com/”,不会添加视频编号
我做错了什么?是否有其他可能获得当前的URL?
@IBOutlet weak var addressBar: UITextField!
@IBOutlet weak var webView: UIWebView!
//some more code...
func webViewDidFinishLoad(webView: UIWebView) {
addressBar.text = webView.request?.URL?.absoluteString
}
答案 0 :(得分:2)
URL
是可选的,因此您使用的是可选链接。您只需对请求的self.addressBar.text = self.webView.request?.URL?.absoluteString
执行相同操作,这也是可选的:
!
注意,没有必要用最后的self.addressBar.text
强制解包。这是因为String?
本身属于{{1}}类型。
答案 1 :(得分:0)
Swift 3.2
self.addressBar.text = self.webView.request?.url?.absoluteString