想象一下普通键盘(如英语)。按住A片段一段时间后,弹出一个带有á,ä和其他按钮的新菜单。在将第一根手指放在屏幕上的同时,将其滑动到另一个按钮的顶部。当您将其滑过按钮时,它会进入突出显示模式(我假设),当您滑出时突出显示处于关闭状态。如果松开手指,弹出按钮将消失。如果您将手指放在其中一个按钮上,则该按钮的字符将被输入文本字段...
我还没有找到办法解决这个问题。长按的不是问题。问题是允许在按住第一根手指的同时顺序选择新按钮 - 执行此操作只需要一次触摸。
允许多次选择的单触还存在于密码锁定屏幕中,该屏幕在转到设置以更改/编辑当前密码设置时弹出。您可以按住5,但是如果您将手指滑动到2,则取消选择5并选择2,依此类推,而不会松开手指。 (另外,设置了“数字键盘”的UITextField具有相同的功能)
有人有个主意吗?
答案 0 :(得分:3)
你需要使用touchesBegan:,touchesMoved:和touchesEnded:方法来检测手指何时接触以及何时被抬起。检查Apple documentation。您必须在长按时添加显示额外字符的子视图(正如您所说,已经完成),然后使用touchesMoved确认手指仍然处于联系状态。选择touchesEnded上的字符:
答案 1 :(得分:1)
似乎你可以通过这种方式使用IBAction
方法和手势回调(仅适用于iOS 4.0及更高版本):
UIControlEventTouchDown
:突出显示当前字符UILongPressGestureRecognizer
:在当前字符正上方(对于底部定位键盘)或直接在突出显示字符下方(对于顶部键盘)打开突出显示字符的菜单UITapGestureRecognizer
:选择突出显示的字符UIControlEventTouchUpInside
:选择突出显示的字符UIControlEventTouchUpOutside
:取消多字符选择答案 2 :(得分:0)
一种方法是使用每个按钮的标签和一个开关来确定按下哪个按钮,虽然它需要一段时间来设置所有按钮和一切...触摸开始/移动/结束的想法非常聪明,但我不确定如何在使用按钮时实现这一目标。也许为每个键使用一个图像并以编程方式更改关键图像。