在自定义键盘中正确实施handleInputModeList
问题描述:
在iOS 10中添加了一个新的API来显示用户可以切换到的其他键盘列表 - 当用户长按系统键盘上的全球键时出现的同一列表。该函数的声明如下:func handleInputModeList(from view: UIView, with event: UIEvent)
在自定义键盘中正确实施handleInputModeList
我的问题是,什么是产生一个UIEvent
提供的正确方法?我打算使用UILongPressGestureRecognizer
调用此函数,但该API不会显示UIEvent
。
答
我正在讨论这个错误的方式。无需自定义手势处理。正如标题所指出的,应该增加一个目标 - 动作的控制,他们要触发这个,像这样:
的Objective-C:[keyboardButton addTarget:self action:@selector(handleInputModeListFromView:withEvent:) forControlEvents:UIControlEventAllTouchEvents];
斯威夫特:keyboardButton.addTarget(self, action: #selector(handleInputModeList(from:with:)), for: UIControlEvents.allTouchEvents)
做到了工作正常吗? –
如果我这样做,我的键盘崩溃与SIGQUIT错误。我将坚持为我的nextKeyboardButton创建一个动作,并在按下它时调用advanceToNextInputMode()。 –