我是Swift
和OS X
编程的新手。 我正在尝试使用进度监视器来指示我的语音合成器朗读文本的进度。
let speechSynthesizer = NSSpeechSynthesizer()
speechSynthesizer.delegate = self;
speechSynthesizer.startSpeakingString(contents)
我想进行设置
progressIndicator.maxValue = Double(NSSpeechStatusNumberOfCharactersLeft.characters.count)
然后定期使用NSSpeechStatusNumberOfCharactersLeft更新进度指示器,根据苹果公司的文档,该指示器应该达到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))
有抛出运行时异常的代码。你有什么想法吗?提前感谢!