2016-06-21 116 views
0

在iOS 10中添加了一个新的API来显示用户可以切换到的其他键盘列表 - 当用户长按系统键盘上的全球键时出现的同一列表。该函数的声明如下:
func handleInputModeList(from view: UIView, with event: UIEvent)在自定义键盘中正确实施handleInputModeList

我的问题是,什么是产生一个UIEvent提供的正确方法?我打算使用UILongPressGestureRecognizer调用此函数,但该API不会显示UIEvent

回答

4

我正在讨论这个错误的方式。无需自定义手势处理。正如标题所指出的,应该增加一个目标 - 动作的控制,他们要触发这个,像这样:

的Objective-C:
[keyboardButton addTarget:self action:@selector(handleInputModeListFromView:withEvent:) forControlEvents:UIControlEventAllTouchEvents];

斯威夫特:
keyboardButton.addTarget(self, action: #selector(handleInputModeList(from:with:)), for: UIControlEvents.allTouchEvents)

+0

做到了工作正常吗? –

+0

如果我这样做,我的键盘崩溃与SIGQUIT错误。我将坚持为我的nextKeyboardButton创建一个动作,并在按下它时调用advanceToNextInputMode()。 –