【问题标题】:Need to replace UIWebView UITextField keyboard需要更换 UIWebView UITextField 键盘
【发布时间】:2013-08-29 21:33:50
【问题描述】:

我使用UIWebView 来显示格式化的内容。但是,我需要用我们自己的替换 UITextViews/UITextFields 的默认键盘。

我可以使用怪诞的方法在默认键盘出现时隐藏它,但是我找不到要直接输入的文本字段。 UITextFieldTextDidBeginEditingNotificationUITextViewTextDidBeginEditingNotification 永远不会被解雇。我确实看到 UIKeyboardWillShowNotification 等正确发出。

最终结果必须获得 App Store 批准。

【问题讨论】:

    标签: iphone ios objective-c uiwebview uitextfield


    【解决方案1】:

    编辑:

    当键盘通知到来时,注意哪个 HTML 元素被聚焦。然后让您的视图控制器成为第一响应者。

    [self becomeFirstResponder];
    

    您的视图控制器应该成为第一响应者并返回您的自定义输入视图。

    - (BOOL)canBecomeFirstResponder {
        return YES;
    }
    
    - (UIView*)inputView {
        return _customInputView;
    }
    

    当您的自定义输入视图获得输入时,您可以将其传递给 HTML 元素。

    NSString* script = [NSString stringWithFormat:@"element.value += '%@';", input];
    [_webView stringByEvaluatingJavascriptFromString:script];
    

    【讨论】:

    • 遗憾的是,我找不到任何要修改的 UITextField 对象。我将 inputView 用于我们自己的对象,但 UIWebView 似乎并没有真正创建它们。我做了一个转储,但我至少没有看到一个。
    • 我已经编辑了我的答案以提出一种实现您的要求的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-16
    • 1970-01-01
    • 1970-01-01
    • 2012-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多