菜鸟教程小白 发表于 2022-12-13 02:11:15

ios - 消除键盘 FirstResponder 问题


                                            <p><p>所以我正在制作一个应用程序,但在从 UISearchBar 和 UITextFields 解除键盘时遇到了一些问题。这是我的应用程序的结构:</p>

<p>NavigationController -> ViewC1 - (Modally)-> ViewC2 -(Modally) -> ViewC3</p>

<p>我在 ViewC1 中有一个搜索框,当按下键盘上的“搜索”按钮时,键盘被关闭,这很好用。但是,如果我在进入 ViewC3 后返回 ViewC1,则按下“搜索”按钮时键盘不再关闭。在搜索栏委托(delegate)方法中,我放了如下:</p>

<pre><code>- (void) searchBarSearchButtonClicked:(UISearchBar *)search
{
if () {
    ;
} else {
    ;
    ;
}
}
</code></pre>

<p>这并不能解决问题,我不确定为什么键盘没有关闭。供引用,返回原来的ViewC1时,ViewC3被dismiss如下:</p>

<pre><code>UIViewController *parent = self.presentingViewController;
;
</code></pre>

<p>感谢您的帮助。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>好的,我想出了问题所在。他们的第一响应者正在辞职,但由于焦点问题,键盘并没有消失。模态视图有一个默认行为是不关闭键盘(这显然不是一个错误)。因此,从模态视图返回后,它仍然存在这种行为(辞职第一响应者但不关闭键盘)。我解决这个问题的方法是将以下代码放在两个模态视图 .m 文件中:</p>

<pre><code>- (BOOL)disablesAutomaticKeyboardDismissal {
return NO;
}
</code></pre>

<p>这为我解决了这个问题。然后通过使用:</p>

<pre><code>;
</code></pre>

<p>或</p>

<pre><code>;
</code></pre>

<p>键盘会正常关闭!</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 消除键盘 FirstResponder 问题,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/15882972/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/15882972/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 消除键盘 FirstResponder 问题