gpt4 book ai didi

ios - UISearchDisplayController 搜索栏不会关闭键盘?

转载 作者:行者123 更新时间:2023-11-29 12:59:47 32 4
gpt4 key购买 nike

我有一个 TableView ,与 UISearchDisplayController 结合使用,后者将 UISearchBar 合并到 TableView 的标题中。当用户点击键盘上的“搜索”时,我无法关闭键盘。我在我的 View Controller 中完成了以下操作:

- (void)viewDidLoad
{

[super viewDidLoad];

[self setTitle:[NSString stringWithFormat:NSLocalizedString(@"ViewTitle", nil), _hotspots.count]];

// Set up view options
if ([_tableView respondsToSelector:@selector(setSeparatorInset:)]) {

[_tableView setSeparatorInset:UIEdgeInsetsMake(0, 15, 0, 0)];

}

[_tableView setTableFooterView:[[UIView alloc] init]];


// Fix for the issue where search bar would display incorrectly on iOS 7 modal iPad view
if ([self respondsToSelector:@selector(edgesForExtendedLayout)]) {

self.edgesForExtendedLayout = UIRectEdgeNone;

}


// Set localisable strings for interface elements
[self.searchDisplayController.searchBar setPlaceholder:NSLocalizedString(@"PlaceholderText", nil)];


// Hide Search Bar
CGRect newBounds = _tableView.bounds;
newBounds.origin.y = newBounds.origin.y + self.searchDisplayController.searchBar.bounds.size.height;
_tableView.bounds = newBounds;


// Set our search bar delegate methods
[self.searchDisplayController.searchBar setDelegate:self];

}

我还为 UISearchBar 实现了相关的委托(delegate)方法...

- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
{
[searchBar resignFirstResponder];
}

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

当我点击键盘上的“搜索”时,搜索栏确实会退出第一响应者状态,但键盘并没有消失。我仍然可以继续输入文本,但它没有输入到我的文本栏中,再次点击“搜索”按钮不会触发上述委托(delegate)方法。

我也尝试过用 [self.view endEditing:YES] 替换 [searchBar resignFirstResponder] 但没有效果。

奇怪的是,这在 iOS 6 和 iOS 7 上表现不同......在 iOS 6 上,搜索按钮永远不会正确关闭搜索引擎,但是在 iOS 7 上,如果我在 searchDisplayController 的表格 View 中选择一个项目,这会推送一个新 View ,当我返回到包含 searchDisplayController 的 View 时,“搜索”按钮每次都会正确关闭键盘。

谁能告诉我这是怎么回事?

更新:

附加信息,这是一个非常简单的 View Controller ,它有一个 TableView 、一个数据源和搜索显示 Controller 代码。我在 iPad 上的模态视图(表单)中显示它,界面包含在 Storyboard中。

更新 2:

需要澄清的是,当 View 以模式(表单 View )显示时,此问题仅发生在 iPad(iOS 6 和 7)上,键盘在 iPhone 上可以正常关闭。

最佳答案

使用这个神奇的方法。我一直在使用它,好处是它总是适用于任何领域,无论在哪里(因为它在主窗口中)和哪个领域。

+ (void)dismissKeyboard {
[[YOURAPPDELEGATE window] endEditing:YES];
}

编辑:

好的,通过您的问题的“更新 2”得到它。这是表单的行为,而不是搜索字段的行为。

查看此链接:Modal Dialog Does Not Dismiss Keyboard

关于ios - UISearchDisplayController 搜索栏不会关闭键盘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20073175/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com