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()。 –