我正在尝试将Google搜索添加到我的文本字段中。我已经得到它所以我可以查找一个或两个变量,但在三个之后崩溃了。我需要更改或添加什么才能使其正常工作?这是我的代码......
func textFieldShouldReturn(textField:UITextField) - >布尔{ textField.resignFirstResponder()
var urlString: String = textField.text
var url = NSURL(string: urlString)
if (url != nil) {
url = NSURL(string: "http://www.google.com/search?q=\(urlString)")
var request = NSURLRequest(URL: url!)
self.webView.loadRequest(request)
}
if url?.scheme == nil {
var spaces = urlString.rangeOfString(" ")
var urlStrings = urlString.stringByReplacingCharactersInRange(spaces!, withString: "+")
var url = NSURL(string: "http://www.google.com/search?q=\(urlStrings)")
var request = NSURLRequest(URL: url!)
self.webView.loadRequest(request)
}
return false
}
答案 0 :(得分:1)
你的spaces = urlString.rangeOfString(" ")
只找到字符串中的第一个空格,所以如果字符串中有更多字符串,那么它只会用+替换第一个空格而不会替换其他空格。你需要使用更多的东西:
urlStrings = urlString.stringByReplacingOccurrencesOfString(" ", withString: "+", options: NSStringCompareOptions.LiteralSearch, range: nil)
在这里,我们将取代" "字符用" +"。总结一下:
var urlString: String = textField.text
urlString = urlString.stringByReplacingOccurrencesOfString(" ", withString: "+", options: NSStringCompareOptions.LiteralSearch, range: nil)
let url = NSURL(string: "http://www.google.com/search?q=\(urlString)")
let request = NSURLRequest(URL: url!)
self.webView.loadRequest(request)
您还要确保首先修剪urlString
以删除任何多余的空格(例如,在开头和结尾处使用双倍空格或空格)。请参阅here了解如何操作!
答案 1 :(得分:0)
Swift 5更新:
var keyword = "Rhinoceros Beetles"
keyword = keyword.replacingOccurrences(of: " ", with: "+")
这应该允许您正确打开URL。