質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

2263閲覧

SearchBarの×ボタンをタップしたときのイベントを取得したい

bizkit.kit

総合スコア30

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2018/12/01 03:03

こんにちは。

SearchBarを配置して使っているのですが、検索窓の右端に出る×ボタンをタップしたときのイベントを取得することは可能でしょうか?

イメージ説明

searchBarCancelButtonClicked(_ searchBar: UISearchBar)なのかなと思ったのですがどうやら違うようでした。

やりたいのは、
「検索窓に文字がある場合は、右上の「+」ボタンと「編集」ボタンを無効にし、検索窓が空の時は有効にする」
です。文字の入力をチェックして、文字列があったら無効化、空になったら有効化するようには出来ました。

しかし、検索窓の右端に出る×ボタンを押した場合、文字列が削除されるのですがそのイベントが拾えないため、「+」ボタンと「編集」ボタンの無効化を解除して有効化にする処理が出来ません。

×ボタンをタップするイベントをひろう方法か、他になにかいい方法があれば教えて下さい。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

delegateのsearchBar(_:textDidChange:)が呼ばれますので、この中でボタンを有効化して下さい。

というか、

文字列があったら無効化、空になったら有効化するようには出来ました

というのは、このメソッドで行っているのではないのでしょうか?

投稿2018/12/03 04:06

fuzzball

総合スコア16731

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

bizkit.kit

2018/12/03 13:25

ありがとうございます! 書き損ねたのですが、検索処理はインクリメンタルサーチにしているので、shouldChangeTextInを使っていました。 教えていただいたメソッドと組み合わせて、やりたい処理に出来ました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問