[Swift]UISearchBar 사용법

6426 단어 Swift초보자용

이번 주제



SearchBar에 입력된 값을 취하는 방법을 출력합니다.
delegate의 이해 등도 포함한 내용입니다.

실수와 잘못된 해석이 있으면 부드럽게 코멘트에서 가르쳐 주시면 도움이됩니다! ! 🙇‍♀️

코드



storyboard에 UISearchBar를 배치하고 ViewController와 연결한 다음 상태로 시작합니다.
import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var searchField: UISearchBar!

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }
}

1 ViewController에 UISearchBarDelegate 프로코틀을 적용시킨다


class ViewController: UIViewController, UISearchBarDelegate {

여담입니다만, 처음으로 이 부분을 보았을 때,
あれ、プロトコルを適用させたらそのプロトコルに定義されているメソッドや、プロパティを全部このクラスで定義しないとエラーになるんじゃ……。
라고 생각했습니다만, 아무래도 オプショナルメソッド 되는 것이 있어, 그러한 메소드의 구현에 관해서는 optinal(선택)이라고 합니다.

2 delegate 속성에 이 클래스 자체를 할당


    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        searchField.delegate = self // 追記
    }

이렇게 하면 SearchBar에서 발생한 이벤트를 이 클래스에서 받고 처리할 수 있습니다.

또한 UISearchBarクラスのdelegataプロパティには、UISearchBarDelegateプロトコルを適用したクラスでなければ代入できません。
1로 이 클래스에 UISearchBarDelegate 프로토콜을 적용시킨 것은 이 때문입니다.

3 입력값을 받는다



입력 후에 検索 를 누르면 처리를 실행시키고 싶으므로, 다음의 메소드를 사용합니다.

메소드 이름 알기 쉽습니다.
    func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
        // キーボードを閉じる
        view.endEditing(true)
        // 入力された値がnilでなければif文のブロック内の処理を実行
        if let word = searchBar.text {
            // デバッグエリアに出力
            print(word)
        }
    }

searchBarSearchButtonClicked 메서드의 인수 searchBar는 UISearchBar 클래스의 인스턴스이며 textプロパティに入力値を保持しています .
text 프로퍼티는 옵셔널형이므로 입력값의 존재 확인(Unwrap)을 if let文 로 행하고 나서 처리를 실시하도록 하고 있습니다.

이것으로 완성입니다.

전체도



import UIKit

class ViewController: UIViewController, UISearchBarDelegate {

    @IBOutlet weak var searchField: UISearchBar!

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        searchField.delegate = self
    }

    func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
        view.endEditing(true)
        if let word = searchBar.text {
            print(word)
        }
    }
}

한마디



즐기면서 swift 학습 중입니다.

기본적인 구문은 여기 (수시로 갱신)에 정리하고 있습니다.

좋은 웹페이지 즐겨찾기