アプリで検索バーを使用したい。しかし、これに関するチュートリアルは見つかりませんでした。
私の質問は簡単です。ユーザーがボタンを入力するように指示したときに検索バーのテキストを取得するにはどうすればよいですか。
私のビューコントローラーには次のようなものが必要です:
override func userPressedToEnter(text: String) {
println("User entered: \(text)")
}
Swift?
ストーリーボードに単純な検索バーがあると仮定して、それがコンセントとして接続されていることを確認してください。次に、これを例として使用します。 ISearchBarDelegate参照を使用 は、使用可能なデリゲートメソッドの詳細を学習します。
import UIKit
class ViewController: UIViewController, UISearchBarDelegate {
@IBOutlet var searchBar:UISearchBar!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
searchBar.delegate = self
}
func searchBar(searchBar: UISearchBar, textDidChange searchText: String) {
print("searchText \(searchText)")
}
func searchBarSearchButtonClicked(searchBar: UISearchBar) {
print("searchText \(searchBar.text)")
}
}
UISearchBarDelegateプロトコルを見てみましょう: https://developer.Apple.com/library/prerelease/ios/documentation/UIKit/Reference/UISearchBarDelegate_Protocol/index.html
View Controllerクラスをこのプロトコルに準拠させると、検索バーを操作するために必要なものがすべて揃います。あるいは、あなたはcan検索バーのテキストフィールドを取得できますが、Appleは、はるかにきれいで、より良い、イベント駆動の方法を提供しますこのプロトコルを介して。
検索しているテーブルビューがあると仮定して、ストーリーボードのテーブルビューに検索バーと検索コントローラーを追加します。これで、必要なすべてのデータソース/デリゲート接続が接続されます。
次に、テーブルビューで使用できます:
func searchDisplayController(controller: UISearchDisplayController!, shouldReloadTableForSearchString searchString: String!) -> Bool {
doStuffWithSearchText(searchBar.text, scope: 0)
}
検索バーのテキストを変更するたびに呼び出されます。彼らがテキストを変更するたびに表示されるデータを更新することは一般的ですが、検索ボタンをタップしたときにのみ行う必要がある場合は、代わりにこの関数を使用します。
func searchBarSearchButtonClicked(searchBar: UISearchBar) {
doStuffWithSearchText(searchBar.text, scope: 0)
}
また、検索結果コントローラーからテキストを取得できます。
controller.searchBar.text
または検索バーから:
searchBar.text
Tableviewコントローラーを使用していない場合:
私は、すべての詳細な詳細が含まれているテーブルビューコントローラーでそれを行うチュートリアルを書きました: Swiftのテーブルビューに検索バーを追加する