Swiftで虫眼鏡のアイコンを押すと検索バーが出てきて、自動的にフォーカスされるようにする

虫眼鏡のアイコンはナビゲーションバーの左右のどちらかに配置すると見栄えがいい。虫眼鏡をクリックしたときの動作は次のようにする。

@objc func showSearchBar() {
    navigationItem.leftBarButtonItems?.removeAll()
    navigationItem.rightBarButtonItems?.removeAll()
    navigationItem.titleView = searchBar
    searchBar.becomeFirstResponder()
}

まずナビゲーションバーの左右からすべてのアイテムを除去する。続いてナビゲーションバーのタイトルを検索バーにして、becomeFirstResponderを加える。ポイントはbecomeFirstResponderにある。

メモ

今回作成しているアプリでは、検索バーは以下の方針をとった。

検索バーをナビゲーションバーに置く方針は、Appleが望んでいるユーザーインターフェースに即している。優れたアプリは共通して、独自のナビゲーションとタブを廃し、Appleが最初から用意したナビゲーションやタブにボタンや検索を設置している。これらの方針は、ユーザーフレンドリーの画面遷移を深く関わっている。

また、タブレットで検索バーを虫眼鏡に縮めるやり方は間違っている。タブレットの利用者は、スマートフォンにない拡張的な世界観を欲している。窮屈な画面はユーザーの期待を裏切ることになる。

広告

広告

広告

姓名判断

漢字辞典

色辞典

数の辞典

高校化学専門サイト

Python解説サイト

© Irohabook