Enterキーが押されたとき、またはユーザーが別のUISearchBar
場所に触れたときに、はキーボードを閉じません。
キーボードを取り外して呼び出すには、iOSキーボードの右下にあるキーボードの取り外しボタンを使用する必要があります。
- (void)searchBarTextDidEndEditing:(UISearchBar *)aSearchBar
どうすれば修正できますか?
Enterキーが押されたとき、またはユーザーが別のUISearchBar
場所に触れたときに、はキーボードを閉じません。
キーボードを取り外して呼び出すには、iOSキーボードの右下にあるキーボードの取り外しボタンを使用する必要があります。
- (void)searchBarTextDidEndEditing:(UISearchBar *)aSearchBar
どうすれば修正できますか?
- (void)searchBarTextDidEndEditing:(UISearchBar *)aSearchBar {
[aSearchBar resignFirstResponder];
}
また、UISearchBarのデリゲートを設定する必要があります:UISearchBarDelegate
動作するはずです。
もう1つのオプションは、使用できるsearchBarSearchButtonClickedです。
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
{
[searchBar resignFirstResponder];
// You can write search code Here
}
.hにUISearchBarDelegateを追加します
また、SearchBarのオブジェクトデリゲートをselfに設定します。
UISearchBarDelegate
のメソッドを追加する必要があります。
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
{
[searchBar resignFirstResponder];
// Do the search...
}
編集:上記は機能しないので、これを追加します:
[self.view endEditing:YES];
次のコードスニペットを使用して、戻るボタンがクリックされたときにキーボードを閉じたり非表示にしたりします。
- (BOOL)searchBar:(UISearchBar *)searchBar shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
if([text isEqualToString:@"\n"])
{
[searchBar resignFirstResponder];
return NO;
}
return YES;
}
swift 1.2の場合、[完了]をクリックするとキーボードが非表示になり、キャンセルする別の機能がありますが、ユーザーが[キャンセル]をクリックすると別の単語を検索する可能性があるため、これを使用するのは適切ではありません...
func searchBarSearchButtonClicked(searchBar: UISearchBar) {
searchBar.resignFirstResponder()
}
それが動作します -
Objectivec-
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar{
[searchBar resignFirstResponder];
}
Swift-
func searchBarSearchButtonClicked(searchBar: UISearchBar) {
searchBar.resignFirstResponder()
}