我想为UIWebView使用自定义键盘。自定义键盘应该是所有HTML / JS / CSS才能用于多个设备。出于这个原因,我添加了一个通知如下:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow) name:UIKeyboardWillShowNotification object:nil];
为了不允许自然键盘出现,我在调用通知时添加了以下方法。
- (void)keyboardWillShow
{
[self.webViews endEditing:YES];
}
在HTML文件中我有:
<!DOCTYPE>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>keyboard</title>
<link rel="stylesheet" type="text/css" href="css/style.css" />
</head>
<body>
<div id="container">
<textarea id="write"></textarea>
</div>
</body>
</html>
问题是,当我在UIWebView中运行此HTML文件并在textarea上进行longpress或双击时,它会使应用程序崩溃。
如果我删除[self.webViews endEditing:YES];
它不会使应用程序崩溃但它会调出键盘。
当用户双击或长按textarea时,我怀疑在UIWebView上“复制/粘贴/选择所有”选项。我试图禁用它们但它没有用。 任何想法将不胜感激。
答案 0 :(得分:0)
自定义键盘需要采用不同的方法。
这里有一个很好的解释,包括一些代码示例: Customizing the iOS keyboard
这里还有另一个关于SO的讨论和关于这个问题的链接: How to create a custom keyboard
答案 1 :(得分:0)
这是Apple Bug#15535639,我希望他们能尽快解决。
答案 2 :(得分:0)
尝试这种解决方法,它对我有用。
- (void)keyboardWillShow
{
dispatch_async(dispatch_get_main_queue(), ^{
[self.webViews endEditing:YES];
});
}