web-dev-qa-db-ja.com

swift

アプリで検索バーを使用したい。しかし、これに関するチュートリアルは見つかりませんでした。

私の質問は簡単です。ユーザーがボタンを入力するように指示したときに検索バーのテキストを取得するにはどうすればよいですか。

私のビューコントローラーには次のようなものが必要です:

override func userPressedToEnter(text: String) {
     println("User entered: \(text)")
}

Swift?

12
Okan

ストーリーボードに単純な検索バーがあると仮定して、それがコンセントとして接続されていることを確認してください。次に、これを例として使用します。 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)")
    }

}
21
Frankie

UISearchBarDelegateプロトコルを見てみましょう: https://developer.Apple.com/library/prerelease/ios/documentation/UIKit/Reference/UISearchBarDelegate_Protocol/index.html

View Controllerクラスをこのプロトコルに準拠させると、検索バーを操作するために必要なものがすべて揃います。あるいは、あなたはcan検索バーのテキストフィールドを取得できますが、Appleは、はるかにきれいで、より良い、イベント駆動の方法を提供しますこのプロトコルを介して。

1
Daniel Rushton

検索しているテーブルビューがあると仮定して、ストーリーボードのテーブルビューに検索バーと検索コントローラーを追加します。これで、必要なすべてのデータソース/デリゲート接続が接続されます。

次に、テーブルビューで使用できます:

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コントローラーを使用していない場合:

  • 検索バーを追加する
  • 検索バーのデリゲートとしてビューコントローラを接続します
  • 次に、searchBarSearchButtonClicked:関数を使用して、[検索]ボタンをタップしたときに処理するか、searchBar(searchBar:UISearchBar、textDidChange searchText:String)を使用してwを処理します。

私は、すべての詳細な詳細が含まれているテーブルビューコントローラーでそれを行うチュートリアルを書きました: Swiftのテーブルビューに検索バーを追加する

0
Christina