Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/115.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 需要更换UIWebView UITextField键盘_Iphone_Ios_Objective C_Uiwebview_Uitextfield - Fatal编程技术网

Iphone 需要更换UIWebView UITextField键盘

Iphone 需要更换UIWebView UITextField键盘,iphone,ios,objective-c,uiwebview,uitextfield,Iphone,Ios,Objective C,Uiwebview,Uitextfield,我正在使用UIWebView显示格式化内容。但是,我需要用自己的键盘替换UITextViews/UITextFields的默认键盘 我可以使用奇怪的方法在默认键盘出现时隐藏它,但我找不到文本字段来直接输入UITextFieldTextDidBeginEditingNotification或UITextViewTextDidBeginEditingNotification从未被触发。我确实看到ui键盘将显示通知etc正确发出 最终结果必须经过App Store批准,这一点很重要。编辑: 当键盘通知

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

我可以使用奇怪的方法在默认键盘出现时隐藏它,但我找不到文本字段来直接输入
UITextFieldTextDidBeginEditingNotification
UITextViewTextDidBeginEditingNotification
从未被触发。我确实看到
ui键盘将显示通知
etc正确发出

最终结果必须经过App Store批准,这一点很重要。

编辑:

当键盘通知发出时,请注意关注哪个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似乎并没有实际创建它们。我做了一个转储,但至少没有看到一个。我编辑了我的答案,以建议实现您的需求的方法。