如何设置仅特定于 UItextfield 的自定义键盘

发布于 2024-09-10 00:38:39 字数 715 浏览 3 评论 0原文

如何设置仅特定于 UITextField 的自定义键盘?当我更改 使用此方法,我的应用程序中的所有键盘都更改为这个新的自定义键盘。我添加:

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

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

How to set Custom keyboard specific to only a UITextField? When I am changing using this method, all the keyboards in my application are changed to this new custom keyboard. I added:

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

in a UIViewController. But after going to that UIView, keyboards in other UIViewControllers also look like new custom keyboard. How can i limit the custom keyboard to only one UIView? Please help me. Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

爱人如己 2024-09-17 00:38:39
UITextField* textField;
UIView* customKeyboard;


textField.inputView = customKeyboard;

类似线程: iPad 自定义键盘 GUI

UITextField* textField;
UIView* customKeyboard;


textField.inputView = customKeyboard;

Similar thread: iPad custom Keyboard GUI

缪败 2024-09-17 00:38:39

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

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

If you subclassed UITextView (as that tutorial shows), then all instances of that subclass will use the toolbar with a dismiss button.

If you don't want the toolbar, then don't use the subclass, just use the original UITextView.

奢望 2024-09-17 00:38:39

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

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

You can try checking for the textfield that you want on the textFieldShouldBeginEditing like so:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
    if (textField == YOUR_DESIRED_TEXTFIELD) {
        [self openCustomKeyboard];
    }
    return YES;
}
蝶舞 2024-09-17 00:38:39

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

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

My problem was once am loading custom keyboard, it remains everywhere in other UIviews of application. So i checked existence of UIToolbar in other UIkeyboard subviews and removed . Now its working fine..

    for(UIView* keyboardToolbar in [keyboard subviews]){
        if([[keyboardToolbar description] hasPrefix:@"<UIToolbar"] == YES)
            {
                [keyboardToolbar removeFromSuperview];      
            }
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文