【问题标题】:Swift: How to put current URL from UIWebView into UITextField?Swift:如何将当前 URL 从 UIWebView 放入 UITextField?
【发布时间】:2017-03-06 18:36:25
【问题描述】:

(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 上的视频链接时,URL 应更改为:https://vimeo.com/105060039
在移动 Safari 上这可以正常工作,但在 UIWebView 上不行。视频编号未添加到 URL“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
}

【问题讨论】:

    标签: swift url uiwebview uitextfield


    【解决方案1】:

    webView.request 是可选的,因此您使用的是可选链接。你只需要对请求的URL做同样的事情,这也是可选的:

    self.addressBar.text = self.webView.request?.URL?.absoluteString
    

    请注意,无需在末尾使用 ! 强制解包。这是因为self.addressBar.text 本身就是String? 类型。

    【讨论】:

      【解决方案2】:

      Swift 3.2

      self.addressBar.text = self.webView.request?.url?.absoluteString

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-24
        • 2011-01-30
        • 1970-01-01
        • 2014-11-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多