- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在制作一个自定义应用内键盘,其工作原理与 this example 相同.但是,在我的键盘中,我使用弹出窗口来显示额外的字母形式。在 traditional Mongolian字母有不同的形式,这取决于它们位于单词的开头、中间还是结尾。通常这些可以从上下文中确定,但有时用户需要从弹出键候选者中明确选择替代形式。
假设用户开始输入一个单词(其中 -
代表字母):
---
然后他们从弹出窗口中选择了a
(我只是使用a
来表示选择特殊蒙古字形的概念)。如果他们继续输入,这封信的 Unicode 将呈现如下:
---a--
但是,Unicode 呈现为
---A
在词尾。 (a
和 A
在 Unicode 中具有相同的代码。)所以用户很困惑为什么他们从弹出键中选择了 a
但是它被渲染了作为编辑器中的 A
。不过,如果他们继续打字,那就没问题了,因为它会在单词中间呈现为 a
。
我想做的是在 ---a
的 a
上设置某种临时跨度,这样它就不会呈现为 - --A
在他们键入下一个字母之前。但是如果他们添加一个空格或将光标移动到不同的位置,那么它将恢复为默认的 ---A
形式的最后一个字母。 (即取消临时跨度。)
实例
如果抽象的a
和A
太容易混淆,这里有一个真实的例子。用户想在这个词中输入蒙古文UE
形式(Unicode \u1826\u180c
)
但是因为 \u1826\u180c
在单词的末尾被渲染成这样
用户在继续输入之前会感到困惑。我想让 span 看起来像这样
可以用\u1826\u180c\u200d
临时渲染。
If your IME does text prediction or requires multiple steps to compose a glyph or word, you can show the progress in the text field until the user commits the word, and then you can replace the partial composition with the completed text.
它给出了这个例子和图片:
InputConnection ic = getCurrentInputConnection();
ic.setComposingText("Composi", 1);
ic.setComposingText("Composin", 1);
ic.commitText("Composing ", 1);
我打算在本节中描述它为什么不起作用,但在此处设置问题的过程中,我发现它确实有效。所以我将在下面添加我的答案作为其他人做类似事情的例子。
最佳答案
以下代码设置了一个临时的 composing span当弹出窗口返回有问题的字符串时
if (selectedItem.equals("a")) {
inputConnection.setComposingText("a", 1);
}
其中 selectedItem
是用户从关键弹出窗口候选中选择的字符串。
请注意,a
有一个下划线,表明它是一个组合跨度。 (这是一个人为的例子,如果立即提交文本,a
将呈现为 A
。)
这也适用于问题中的真实示例
if (selectedItem.equals("\u1826\u180c")) {
inputConnection.setComposingText("\u1826\u180c\u200d", 1);
}
当确认用户想要保持书写跨度(即,他们继续在单词中输入更多字母)时,可以提交
inputConnection.commitText("\u1826\u180c", 1);
如果用户点击其他地方,合成跨度不会被取消。但这是一个不同的问题。
您的键盘可以覆盖 onUpdateSelection
以监听那里的光标更改。然后调用
inputConnection.finishComposingText();
保留组成区域中的任何文本。或者
ic.commitText("", 1);
摆脱它。参见 this answer了解更多。
关于android - 通过 Android 中的自定义键盘在 EditText 上设置撰写文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45204305/
我遇到了一个问题。我正在使用 pyinstaller 将代码导出到 .exe。代码包括 tkinter、PIL 和 keyboard 模块。软件在我使用 Python 的 PC 上运行完美,而在没有
我正在尝试将 STM32F0-disco 用作 Windows PC 的键盘。正在打印的字符有问题。 下面的代码等到板载按钮被按下,然后应该打印一次这三个字符。 /* USER CODE BE
我想在单击键盘上的“完成”按钮时退出键盘。我怎样才能做到这一点?我有以下代码=> textView.returnKeyType = UIReturnKeyDone; 我有这个代码用于限制 TextVi
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 8 年前。 Improve this ques
我想调出一个用于输入电话号码的键盘。有没有办法在我自己的 Activity 中显示此对话框并捕获用户输入的内容。我需要能够控制用户点击调用时发生的情况。所以我很感兴趣自定义允许用户输入电话号码的 Ac
我希望软键盘位于我的布局之上,而不是在它弹出时四处移动我的布局。我该怎么做呢?我查看了 list ,但从未设置 android:windowSoftInputMode="adjustResize" 此
主题:将某些键替换为另一个键值。 例如如果我按 P,它应该是 F24。 当我尝试从 .ini 文件加载键值时, Hook 不再是全局的。它仅在 winapi 窗体处于焦点时才有效。 我的 DLL 代码
当我点击 EditText 时,是否可以用小写字母启动 android 键盘?基本上,我想要的是将 EditText 中的第一个字母小写,但也让用户可以根据需要将其变为大写...... (EditTe
我想监控 IOS 上的键盘隐藏按钮并触发一个事件。我在说: 我只想在用户按下实际按钮时进行监控。我不想要键盘隐藏时的事件。 最佳答案 用户键盘通知观察者.. 对于 swift NSNotificati
在经历了这一切之后就像认真的...... Easy way to dismiss keyboard? ...我有多个 TextFields 和一些 TextViews。有没有办法对所有文本字段进行批处
所以我想在我的应用程序中添加一个键盘,其中包含表情符号,就像 Whatsapp 或环聊一样。我怎样才能做到这一点?我想保留我的键盘,因为我只想添加标签来放置表情符号。我认为软键盘很容易支持它,但到目前
首先,我会让您知道,我在 StackOverflow 以及 Google 和 Github 上查看了很多很多不同的帖子。我已经到处寻找对我有帮助的任何。但是,似乎没有任何效果。它要么已经过时(超过 1
当按下相应的键时,我试图让我的游戏中的宇宙飞船 (PlayerShip.gif) 向左、向右、向上和向下移动。我知道我需要一个 keyboardListener 但我在弄清楚它的去向以及它是如何实际实
我正在尝试制作一个 HID USB 设备。我搜索了一下,发现键盘的输出有 8 个字节。第一个字节是修饰符,第二个字节是保留字节,其余 6 个字节是关键代码。我认为在某些情况下,例如“prtsc”,需要
我最近开始学习 Vim,在深入学习之前,我有一个问题需要回答。 使用 AZERTY 键盘,我是否应该重新映射命令和快捷方式的键以适应 QWERTY 键盘的键位置? 我之所以问这个,是因为显然在创建这些
我一直认为在使用 Dvorak 布局之前,我需要购买 Dvorak 键盘。但是我在亚马逊上找不到。仅仅是从 Qwerty 键盘上弹出键并移动它们吗? 最佳答案 为了帮助您了解键盘布局,您可以重新排列
我不敢相信我还没有找到任何关于此的文档,但我想知道如何命令键盘激活并接收来自它的输入。我可以找到在编辑文本字段时操作弹出键盘的所有示例。谢谢 最佳答案 您还可以使用 UIKeyInput 协议(pro
我有一个 UITextField,其中弹出的键盘已禁用其 Shift 键。键盘类型设置为 UIKeyboardTypeNamePhonePad,看起来应该允许大写。 如果我将键盘类型更改为“默认”但保
背景:我的表单有一个 TWebBrowser。我想用 ESC 关闭表单,但 TWebBrowser 吃掉了击键 - 所以我决定使用键盘 Hook 。 问题是表单可以同时在多个实例中打开。 无论我做什么
我需要(即客户要求)提供自定义键盘,供用户在文本字段和区域中输入文本。我已经有一些可以执行键盘操作并将测试附加到文本字段的东西,但是我想让它更通用并让它像标准的 iphone 键盘一样工作,即当用户选
我是一名优秀的程序员,十分优秀!