gpt4 book ai didi

ios - 消除 Keyboard FirstResponder 问题

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:47:04 24 4
gpt4 key购买 nike

所以我正在制作一个应用程序,但在从 UISearchBar 和 UITextFields 中关闭键盘时遇到了一些问题。这是我的应用程序的结构:

NavigationController -> ViewC1 -(模态)-> ViewC2 -(模态) -> ViewC3

我在 ViewC1 中有一个搜索框,当按下键盘上的“搜索”按钮时,键盘消失了,这工作正常。但是,如果我在进入 ViewC3 后返回到 ViewC1,则在按下“搜索”按钮时键盘不再消失。在搜索栏委托(delegate)方法中,我输入如下:

- (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];

感谢任何帮助,谢谢。

最佳答案

好的,我知道问题出在哪里了。他们的第一响应者正在辞职,但键盘并没有因为焦点问题而消失。模态视图的默认行为是不关闭键盘(这显然不是错误)。因此,从模态视图返回后,它仍然具有这种行为(放弃第一响应者但不解除键盘)。我解决这个问题的方法是在两个模态视图 .m 文件中放置以下代码:

- (BOOL)disablesAutomaticKeyboardDismissal {
return NO;
}

这为我解决了。然后通过使用:

[search resignFirstResponder];

[self.view endEditing: YES];

键盘将关闭!

关于ios - 消除 Keyboard FirstResponder 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15882972/

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