【发布时间】:2013-03-30 18:19:25
【问题描述】:
所以我正在制作一个应用程序,但在从 UISearchBar 和 UITextFields 解除键盘时遇到了一些问题。这是我的应用程序的结构:
NavigationController -> ViewC1 - (Modally)-> ViewC2 -(Modally) -> ViewC3
我在 ViewC1 中有一个搜索框,当按下键盘上的“搜索”按钮时,键盘被关闭,这很好用。但是,如果我在进入 ViewC3 后返回 ViewC1,则按下“搜索”按钮时键盘不再关闭。在搜索栏委托方法中,我放了如下:
- (void) searchBarSearchButtonClicked:(UISearchBar *)search
{
if ([search isFirstResponder]) {
[search resignFirstResponder];
} else {
[search becomeFirstResponder];
[search resignFirstResponder];
}
}
这并不能解决问题,我不确定为什么键盘没有关闭。供参考,返回原来的ViewC1时,ViewC3被dismiss如下:
UIViewController *parent = self.presentingViewController;
[parent.presentingViewController dismissViewControllerAnimated:YES completion:nil];
感谢任何帮助,谢谢。
【问题讨论】:
-
我建议调试你的搜索按钮点击方法。搜索栏及其代表是否仍被分配?此时搜索是否也被视为第一响应者?
-
@Ben M:它仍然被识别为 firstResponder,因此在触发委托方法时它仍然分配了委托。
标签: ios objective-c keyboard uisearchbar resignfirstresponder