如何禁用Windows手机键盘?

时间:2014-05-22 06:21:19

标签: javascript windows-phone-8 visual-studio-2013 windows-phone-8.1

我正在使用javascript创建windows phone 8.1应用程序,我为我的应用程序创建了一个自定义键盘,但是当我点击输入/文本字段时,Windows手机键盘会弹出。我想仅为我的应用禁用它。

我做了一件事

<body id="body">
<textarea id="input" onclick="loseFocus()"></textarea>
<script>
function loseFocus(){
    document.getelementById("body").focus();
}
</script>
</body>

但它不能像我想的那样工作.. 因为它失去了焦点,它失去了闪烁的光标,无法写入textarea

更新 我想以一种新的方式去做。 我正在使用iframe而不是textarea并编辑iframe或输入文本我正在使用innerHTML属性

并弹出一个onClick事件我的自定义键盘 现在的问题是我希望iframe中的光标闪烁,我在其中工作

4 个答案:

答案 0 :(得分:2)

如果你将焦点设置到其他UI元素,那么显然它会失去闪烁的光标,虽然键盘不见了。 由于您在使用TextBox时无法禁用键盘,因此可以执行this

等技巧

答案 1 :(得分:2)

您遇到的问题是,焦点事件的TextBox控件被手机本身截获并且它会使键盘运行。

简而言之,没有办法解决这个问题。但是,还有另一种方法。

构建自己的文本框控件......这听起来很疯狂,但是它呢?并不是的。我一直在工作时构建自定义控件。通常认为它们是其他预制控件的组合,但它们仍然是UserControls。

那么让我们想一想,如何制作自己的?

我不确定您是否能够在项目中使用XAML元素。但是,如果您在这里是如何使用用户控件执行此操作。否则,您将需要研究如何进行自定义Web控件。可能是CSS和HTML的混合

从像这样简单的事情开始

<Grid>  <--- Handle your tap event
  <Border>
    <TextBlock> <-- Databind this to a string property in your back end code

让你的网格处理你的点击事件。

XAML视为一个愚蠢的蛋糕。点击Textblock时,如果没有处理水龙头,则会进入边界,然后是网格。因此,如果您使用网格处理水龙头,它也会消耗内部水龙头。

那么你在点击活动中做了什么?

这里是您展示自定义键盘的地方。您想要识别哪个自定义TextBlock被点击了。您可以通过在每个上面添加自定义标记来实现此目的。

当您的用户在自定义键盘上键入时,请更改TextBlock绑定的属性值。这将更新屏幕上的文本。

这几乎是一个基本的文本块。

以下是从这篇文章中得出的假设:

  1. 您知道用户控件是什么

  2. 您知道如何使用DataBind

  3. 您了解2路DataBinding

  4. 希望这有帮助!

答案 2 :(得分:1)

您可以以1秒的间隔更新文本区域的内容。以秒为间隔追加/删除|字符。

setTimeout(function() {UpdateContent()}, 1000);

答案 3 :(得分:0)

我遇到了类似的问题。

我的解决方法是在文本框下创建一个文本块,让它共享文本框的内容。 然后,我在两者之间切换可见性状态,以防止键盘在不需要时显示。

这是一个黑客,但它适用于我的情况。