2014-07-17 17 views
22

我玩弄斯威夫特学习它,现在我无法从UISearchBar斯威夫特:的UISearchBar:获取文本时,搜索按钮点击

现在我的代码看起来像这样,把文本:

import UIKit 

class SecondViewController: UIViewController { 

    @IBOutlet var myWebView : UIWebView 
    @IBOutlet var adressbar: UISearchBar 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     adressbar.showsScopeBar = true 

     var url = NSURL(string: "http://google.com") 
     var request = NSURLRequest(URL: url) 

     myWebView.scalesPageToFit = true 
     myWebView.loadRequest(request) 
    } 

    func searchBarSearchButtonClicked(searchBar: UISearchBar!) { 

     var url = NSURL(string: adressbar.text) 
     var request = NSURLRequest(URL: url) 

     myWebView.scalesPageToFit = true 
     myWebView.loadRequest(request) 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
    } 
} 
+0

你能告诉我们更多关于你遇到的问题吗?是否调用了searchBarSearchButtonClicked?你应该使用'adressbar.text'而不是'searchbar.text'吗?我看到这里甚至没有尝试触摸搜索栏。 –

+0

searchBarSearchButtonClicked未被调用 – Eudoxus

+0

您是否以某种方式将它的操作挂钩到该功能? –

回答

28

viewDidLoad必须将搜索栏的委托从它接收searchBarSearchButtonClicked

import UIKit 

class SecondViewController: UIViewController, UISearchBarDelegate 
{ 
    @IBOutlet var myWebView : UIWebView 
    @IBOutlet var adressbar: UISearchBar 

    override func viewDidLoad() 
    { 
     super.viewDidLoad() 

     adressbar.showsScopeBar = true 
     adressbar.delegate = self 

     var url = NSURL(string: "http://google.com") 
     var request = NSURLRequest(URL: url) 

     myWebView.scalesPageToFit = true 
     myWebView.loadRequest(request) 
    } 

    func searchBarSearchButtonClicked(searchBar: UISearchBar!) 
    { 
     var url = NSURL(string: searchBar.text) 
     var request = NSURLRequest(URL: url) 

     myWebView.scalesPageToFit = true 
     myWebView.loadRequest(request) 
    } 

    override func didReceiveMemoryWarning() 
    { 
     super.didReceiveMemoryWarning() 
    } 
} 
+1

感谢您回答Alex的工作。 – Eudoxus