我是Swift
和OS X
編程的新手。我正在嘗試使用進度監視器來指示我的講話合成器講話文本的進度。使用NSSpeechStatusNumberOfCharactersLeft更新NSSpeechSynthesizer的進度指示器
let speechSynthesizer = NSSpeechSynthesizer()
speechSynthesizer.delegate = self;
speechSynthesizer.startSpeakingString(contents)
我想設置
progressIndicator.maxValue = Double(NSSpeechStatusNumberOfCharactersLeft.characters.count)
,然後定期更新NSSpeechStatusNumberOfCharactersLeft的progressIndicator,而根據蘋果的文檔應該打0
每一個辦法,我嘗試訪問該鍵,它返回相同的不準確的數字,所以我顯然沒有正確使用它。我發現的唯一的例子是Objective-C
NSNumber *n = [[self.speechSynth objectForProperty:NSSpeechStatusProperty error:NULL] objectForKey:NSSpeechStatusNumberOfCharactersLeft];
,我想那意思就是Swift
,但仍然沒有骰子。
let count = try speechSynthesizer.objectForProperty(NSSpeechStatusProperty).objectForKey(NSSpeechStatusNumberOfCharactersLeft)
我也試過
speechSynthesizer.valueForKey(NSSpeechStatusNumberOfCharactersLeft))
speechSynthesizer.valueWithName(NSSpeechStatusNumberOfCharactersLeft, inPropertyWithKey: NSSpeechStatusProperty))
其拋出運行時異常。有什麼想法嗎?提前致謝!
好吧,所以事情現在有點怪異。此關鍵NSSpeechStatusNumberOfCharactersLeft只返回一次正確的值,但僅在重新啓動計算機後才返回。 (不要問我是如何注意到:P)它通過訪問它:let count =嘗試speechSynthesizer.objectForProperty(NSSpeechStatusProperty).objectForKey(NSSpeechStatusNumberOfCharactersLeft) 我已經 –