UITextView上的自定义键盘首先显示苹果键盘,然后切换到自定义键盘

时间:2017-02-22 12:04:41

标签: ios iphone swift ipad swift4

点击textView时会发生什么的简短视频: https://www.youtube.com/watch?v=LG_r3iDJKiM

我正在尝试从textViewDidBeginEditing函数在UITextView上显示我的自定义键盘。自定义键盘已经在UITextFields上进行了测试,并且正在按预期工作。现在我正在尝试使用相同的键盘来使用UITextViews。 第一次打开应用程序时,第一次点击textView会出现这种情况,然后当我们点击其他textView时,自定义键盘会直接按预期显示。

我的TextViewDidBeginEditing中的当前代码,我尝试更改最后4行的顺序,但没有成功:

public func textViewDidBeginEditing(_ textView: UITextView) {
   keyboard = Keyboard.sharedInstance.keyboardWithType(availableKeyboards.numbers.rawValue, returnKey:textView.returnKeyType, isSecure: false,decimalSeparator:self.decimalSeparatorCharacter, responderClass: self)

   inputView.keyboardAppearance = .dark
   inputView.hideAssistantBar()
   inputView.inputView = keyboard
   inputView.reloadInputViews()
}

这将导致上面的视频,我尝试了其他一些方法,但还没有成功:

将空UIView设置为inputView,这仍然会导致苹果键盘短暂出现

let view:UIView = UIView()
textView.inputView = view

也试过做reloadInputViews,但这也不起作用:

textView.reloadInputViews()

还尝试在主踏板上运行

DispatchQueue.main.async { }

但没有成功,我无法理解为什么即使设置一个UIView()作为inputView仍然会很快显示苹果键盘。非常感谢任何正确方向的帮助!

提前致谢!

0 个答案:

没有答案