iOS swift自定义键盘没有声音和延迟

时间:2014-11-02 04:16:06

标签: ios xcode swift custom-keyboard ios8-extension

我在iOS上使用新语言swift测试键盘扩展,但是我无法为keyPressed事件播放声音,并且在我点击该键时有一个延迟,大约10秒。

这是我的代码:

@IBAction func keyPressed(button: UIButton) {
    var string = button.titleLabel!.text
    (textDocumentProxy as UIKeyInput).insertText("\(string!)")
    AudioServicesDisposeSystemSoundID(1104)
    AudioServicesPlaySystemSound(1104)
    UIView.animateWithDuration(0.2, animations: {
        button.transform = CGAffineTransformScale(CGAffineTransformIdentity, 2.0, 2.0)
        }, completion: {(_) -> Void in
            button.transform =
            CGAffineTransformScale(CGAffineTransformIdentity, 1, 1)
    })
}

提前感谢任何评论或建议...

2 个答案:

答案 0 :(得分:0)

你需要在另一个线程中播放声音。用户需要允许完全访问才能使用。因此,请确保在扩展名

的info.plist中请求此操作
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0),     
{
    AudioServicesPlaySystemSound(1104);
});    

对于Objective-C,只需在{

前面添加^符号

答案 1 :(得分:0)

您需要将AudioServicesDisposeSystemSoundID(1104)移至deinit方法。