菜鸟教程小白 发表于 2022-12-12 09:37:20

ios - 在编辑 UITextField 的同时更改返回键类型?


                                            <p><p>IM 在更改返回键类型时遇到问题,同时仍在编辑我的 View 的文本字段。因此,当用户单击文本字段时,我有一些更改键盘返回类型的检查,当我更改键盘时,这些检查被放置在 <code>- (void)textFieldDidBeginEditing:(UITextField *)textField</code> 中此处的返回键代码工作正常。我只是像 <code>;</code> 那样更改键盘的重新运行键。所以有2个文本字段用户名和密码。如果两个文本字段中都有文本我想将返回键更改为 <strong>DONE</strong> 如果只有一个文本字段中有文本我想将其更改为 <strong>NEXT</strong> 所以我可以在文本字段之间来回跳转。所以现在我在 <code>- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string</code> 中进行了一些检查和平衡。然而,我放置在 <code>textFieldDidBeginEditing</code> 中的相同代码在此函数中不起作用。我读了一堆帖子,他们都说要删除文本字段作为第一响应者,然后设置返回键并再次成为响应者,但这会扰乱我当前在各个方法中的流程。我还读到我必须在设置返回键后调用 <code></code> ,但这又不起作用。你会认为苹果现在已经修复了这样的错误。无论如何,这里有人有意见吗?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我必须实现一个添加标签逻辑,该逻辑需要根据输入到 UITextField 中的文本来更改键盘返回键。找到如何更改返回键很容易,但是当我开始测试时,我注意到这个解决方案只适用于 iOS10,但不适用于 iOS9。在花了一些时间并做了一些研究之后,我想出了这个解决方法,它不是最好的,但至少它有效。</p>

<pre><code>if #available(iOS 10.0, *) {
    textField.reloadInputViews()
} else {
    textField.keyboardType = .numberPad
    textField.reloadInputViews()
    textField.keyboardType = .default
    textField.reloadInputViews()
}
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 在编辑 UITextField 的同时更改返回键类型?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/33487369/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/33487369/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 在编辑 UITextField 的同时更改返回键类型?