在调用searchDisplayControllerWillEndSearch时保持键盘

时间:2014-03-17 01:55:06

标签: ios objective-c

在本网站的其他帖子的帮助下,我点击了按钮时设法用键盘打开搜索显示控制器。我可以看到底层的UIView也变暗了。

我现在想做的是,当用户点击搜索栏外时,键盘不会被解除。目前,键盘被解除,并且调用了searchDisplayControllerWillEndSearch。

我尝试了以下组合但没有效果。

self.searchDisplayController.searchBar.hidden = NO;
[self.searchDisplayController.searchBar setShowsCancelButton:YES animated:YES];
[self.searchDisplayController setActive: YES animated: YES];
[self.searchDisplayController.searchBar becomeFirstResponder]

任何人都可以提出任何想法吗?

1 个答案:

答案 0 :(得分:1)

我无法尝试这个,但我认为它应该可行

将某些内容声明为searchbar delegate;

@interface YourViewController : UIViewController <UISearchBarDelegate>

然后,在YourViewController.m中的某处,设置:

- (BOOL) searchBarShouldEndEditing:(UISearchBar *)searchBar {
    return NO;
}

您可以将其设置为返回动态内容,例如,如果我们只想让它在没有任何文本时停止编辑,我们可以这样做。

- (BOOL) searchBarShouldEndEditing:(UISearchBar *)searchBar {
    return (searchbar.text.length > 0) ? YES : NO;
}

这样,如果用户已开始输入,或者搜索栏中有任何文字,则不会重新签名。

让我知道这是否有效。