[英]iOS8 custom keyboard issues
我現在正在開發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)
}
}
注意:這僅在鍵盤打開完全訪問權限時才有效,因此在調用之前最好測試完全訪問權限,否則鍵盤可能會長時間暫停。
對於第二個問題,請嘗試AudioServicesPlaySystemSound
#define PRESS_KEY_DEFAULT_SOUND_ID 1104
- (void)playPressKeySound {
if (self.openPressSound) {
AudioServicesPlaySystemSound(PRESS_KEY_DEFAULT_SOUND_ID);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.