【问题标题】:How to set Custom keyboard specific to only a UItextfield如何设置仅特定于 UItextfield 的自定义键盘
【发布时间】:2011-03-16 23:22:39
【问题描述】:

如何设置特定于UITextField 的自定义键盘?当我更改using this method 时,我的应用程序中的所有键盘都更改为这个新的自定义键盘。我补充说:

[[NSNotificationCenter defaultCenter] addObserver:self.view 
                                      selector:@selector(keyboardWillShow:) 
                                      name:UIKeyboardWillShowNotification 
                                      object:nil];

UIViewController 中。但是在转到UIView 之后,其他UIViewControllers 中的键盘也看起来像新的自定义键盘。如何将自定义键盘限制为只有一个UIView?请帮我。提前致谢。

【问题讨论】:

    标签: iphone keyboard uikeyboard


    【解决方案1】:
    UITextField* textField;
    UIView* customKeyboard;
    
    
    textField.inputView = customKeyboard;
    

    类似线程:iPad custom Keyboard GUI

    【讨论】:

      【解决方案2】:

      如果您将 UITextView 子类化(如该教程所示),则该子类的所有实例都将使用带有关闭按钮的工具栏。

      如果你不想要工具栏,那就不要使用子类,使用原来的 UITextView 即可。

      【讨论】:

      • 我没有继承 UItextview。我只使用了那个函数keyboardWillShow和addObserver方法。是因为我使用的是for(UIWindow *keyboardWindow in [[UIApplication sharedApplication] windows])?
      【解决方案3】:

      您可以尝试在 textFieldShouldBeginEditing 上检查所需的文本字段,如下所示:

      - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
          if (textField == YOUR_DESIRED_TEXTFIELD) {
              [self openCustomKeyboard];
          }
          return YES;
      }
      

      【讨论】:

        【解决方案4】:

        我的问题是曾经加载自定义键盘,它仍然存在于应用程序的其他 UIviews 中。所以我在其他 UIkeyboard 子视图中检查了 UIToolbar 的存在并删除了。现在它工作正常..

            for(UIView* keyboardToolbar in [keyboard subviews]){
                if([[keyboardToolbar description] hasPrefix:@"<UIToolbar"] == YES)
                    {
                        [keyboardToolbar removeFromSuperview];      
                    }
            }
        

        【讨论】:

        • 使用isMemberOfClass:isKindOfClass:而不是使用hasPrefix来确定一个实例是否属于特定类
        猜你喜欢
        • 2015-11-10
        • 1970-01-01
        • 2016-06-30
        • 1970-01-01
        • 2016-02-03
        • 2016-03-28
        • 2014-09-27
        • 2010-11-11
        • 1970-01-01
        相关资源
        最近更新 更多