Tac*_*Lee 3 keyboard ios ios8 ios-app-extension custom-keyboard
我现在正在开发iOS 8自定义键盘扩展,还有一些我无法弄清楚的问题.
首先,我认为UITextInputDelegate方法没有按照我的预期运作.
这听起来是正确的:selectionWillChange:和selectionDidChange:方法应该当用户长时间打字印刷机区域叫什么名字?而textWillChange:和textDidChange:方法应该每当文字字面上改变被称为?
实际上,我观察到的是,当我在文本输入区域中更改选择textWillChange:并被textDidChange:调用时,我无法得到其他两种方法在什么条件下被调用的线索.如果有人知道这些委托方法的用法,请告诉我.
其次,我知道该playInputClick:方法可用于虚拟化自定义键盘中的键盘点击声.由于这适用于正常情况,我发现无法在iOS 8自定义键盘扩展中应用.我的应用程序包含一个键盘视图控制器,以及将子类UIView添加到此视图控制器的自定义视图.我的方法是UIInputViewAudioFeedback在此自定义视图中声明委托,enableInputClicksWhenVisible方法返回YES,[[UIDevice currentDevice] playInputClick]设置调用的类方法,然后在需要键盘声音的任何地方调用此方法:这根本不起作用.
我的方法有什么不对吗?如果有人成功使用playInputClick方法,请分享你的智慧.
谢谢
最好在队列而不是UI键处理程序中播放音频
func playPressKeySound() {
let PRESS_KEY_DEFAULT_SOUND_ID: SystemSoundID = 1104
dispatch_async(dispatch_get_main_queue()) {
AudioServicesPlaySystemSound(PRESS_KEY_DEFAULT_SOUND_ID)
}
}
Run Code Online (Sandbox Code Playgroud)
注意:这仅在键盘打开完全访问权限时才有效,因此在调用之前最好测试完全访问权限,否则键盘可能会长时间暂停.