[Swift]UISearchBar 사용법
이번 주제
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 학습 중입니다.
기본적인 구문은 여기 (수시로 갱신)에 정리하고 있습니다.
Reference
이 문제에 관하여([Swift]UISearchBar 사용법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/gentuki/items/474c5f397529bfbf100d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var searchField: UISearchBar!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
}
class ViewController: UIViewController, UISearchBarDelegate {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
searchField.delegate = self // 追記
}
func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
// キーボードを閉じる
view.endEditing(true)
// 入力された値がnilでなければif文のブロック内の処理を実行
if let word = searchBar.text {
// デバッグエリアに出力
print(word)
}
}
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 학습 중입니다.
기본적인 구문은 여기 (수시로 갱신)에 정리하고 있습니다.
Reference
이 문제에 관하여([Swift]UISearchBar 사용법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/gentuki/items/474c5f397529bfbf100d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)