菜鸟教程小白 发表于 2022-12-13 08:49:08

iOS通过代码将默认键盘从ABC模式切换到123模式?


                                            <p><p>我可以通过以下方式查看如何设置键盘的整体类型:</p>

<pre><code>self.myTextView.keyboardType = UIKeyboardTypeDefault;
</code></pre>

<p>如何通过代码将默认键盘模式从 ABC 切换到 123 并再次返回?基本上在用户点击@字符的那一刻(@符号在他们处于 123 模式时可用)我想将他们的键盘切换回 ABC 模式。</p>

<p>有什么想法吗?</p>

<p> <img src="/image/gVltw.png" alt="enter image description here"/>
<img src="/image/ACLaE.png" alt="enter image description here"/> </p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>您可以通过使用 UITextViewDelegate 来完成此操作。它允许您在 UITextView 中按下按键时拦截它们。这将允许您在用户按下某个键时切换键盘。为了恢复 UIKeyboardTypeDefault 键盘的默认状态,您需要将键盘类型更改为另一种,然后再恢复为默认状态。</p>

<p>在您的 ViewController.h 文件中,使其实现 UITextViewDelegate 协议(protocol):</p>

<pre><code>@interface ViewController : UIViewController &lt;UITextViewDelegate&gt;
</code></pre>

<p>在 ViewController.m 的 ViewController 的 viewDidLoad 方法中,将 textField 的委托(delegate)设置为 ViewController :</p>

<pre><code>- (void)viewDidLoad
{
    ;
    // Do any additional setup after loading the view, typically from a nib.

    self.myTextView.delegate = self;
}
</code></pre>

<p>最后,我们需要在输入时捕获键并适本地更改键盘。我们在 shouldChangeCharactersInRange: 方法中执行此操作。</p>

<pre><code>- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
    if( [@&#34;@&#34; isEqualToString:text] )
    {
      NSLog( @&#34;Toggling keyboard type&#34;);
      textView.inputView = nil;
      ;
      ;
      ;
      ;

      textView.inputView = nil;
      ;
      ;
      ;
      ;

    }
    return YES;
}
</code></pre>

<p>所以我最初很困惑,并认为您实际上想更改键盘类型。现在我正在阅读您的评论,我意识到您实际上是想将键盘重置为显示字母的默认状态,而不是数字和特殊字符。上面的代码现在可以做到这一点。</p></p>
                                   
                                                <p style="font-size: 20px;">关于iOS通过代码将默认键盘从ABC模式切换到123模式?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/25150077/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/25150077/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: iOS通过代码将默认键盘从ABC模式切换到123模式?