私はSwiftでそれを学ぶために遊んでいますが、今は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()
}
}
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.最初に、UISearchbarDelegateに準拠します。
2.検索バーのデリゲートを自己に設定します。
詳細については、こちらをご覧ください Swift iOSチュートリアル:UISearchBarおよびUISearchBarDelegateを使用した検索の実装
検索でここに到着した人に対する単純な(非特定の)回答:
UISearchBarのアウトレット名が「searchBar」の場合...
@IBOutlet weak var searchBar: UISearchBar!
次に、UISearchBarでユーザーが入力したテキストが呼び出されます...
searchBar.text
2つの一般的なものSwiftコーダーは忘れます:1. UISearchBarDelegate
クラスを追加することを確認してください...
ViewController: UIViewController, UISearchBarDelegate
ビュークラスをデリゲートとして識別することを忘れないでください... viewDidLoad
の中にあなたが書くことができます...
searchBar.delegate = self
上記の#1を忘れると、次のように実装する必要があるメソッドを自動補完できなくなります...
func searchBarSearchButtonClicked(_ seachBar: UISearchBar) { your code }
...デリゲートプロトコルによって提供されます。