3

想象一个普通的键盘(比如英语)。按住 A 片刻,会弹出一个带有 á、ä 和其他按钮的新菜单。在仍然按住屏幕上的第一根手指的同时,将其滑到另一个按钮的顶部。当您将它滑过按钮时,它会进入突出显示模式(我假设),并且当您滑出时,突出显示会关闭。如果您松开手指,弹出按钮就会消失。如果您将手指放在其中一个按钮上,则该按钮的字符正在输入到文本字段中......

我还没有找到解决这个问题的方法。长按不是问题。问题是允许顺序选择新按钮,同时仍然按住第一根手指 - 只需一次触摸即可执行此操作。

进入设置以更改/编辑当前密码设置时弹出的密码锁定屏幕中也存在允许多个选择的一键式。您可以按住 5,但如果您将该手指向上滑动到 2,则取消选择 5 并选择 2,依此类推,而无需松开手指。(同样设置了“数字键盘”的 UITextField 也具有相同的功能)

有人有想法吗?

4

3 回答 3

3

您需要使用 touchesBegan: 、 touchesMoved: 和 touchesEnded: 方法来检测手指何时接触以及何时抬起。检查Apple 文档。您必须添加在长按时显示额外字符的子视图(正如您所说,您已经完成了),然后使用 touchesMoved 确认手指仍在接触。选择 touchesEnded 上的角色:

于 2011-08-04T04:45:34.757 回答
1

似乎您可以通过IBAction方法和手势回调来做到这一点(仅适用于 iOS 4.0 及更高版本):

  • on UIControlEventTouchDown:突出显示当前字符
  • 在触发UILongPressGestureRecognizer对每个单独键的绑定时:打开当前字符正上方(用于底部键盘)或突出显示字符正下方(用于顶部键盘)的突出显示字符的菜单
  • 在触发UITapGestureRecognizer绑定到每个单独的键时:选择突出显示的字符
  • UIControlEventTouchUpInside多字符菜单上打开:选择突出显示的字符
  • on UIControlEventTouchUpOutside: 取消多字符选择
于 2011-08-04T04:47:50.047 回答
0

一种方法是使用每个按钮的标签和一个开关来确定按下了哪个按钮,尽管设置所有按钮和一切都需要一段时间...... Touches Began/Moved/Ended 的想法非常聪明,但我不确定在使用按钮时如何实现这一点。也许为每个键使用一个图像并以编程方式更改键图像。

于 2011-09-18T01:17:21.160 回答