我試圖製作一個Mac應用程序,用於說明用戶輸入的NSTextField
文本,使用「system」在終端中使用say
命令。但是,Xcode不斷給出錯誤。在可可應用程序中通過終端講話
- (IBAction)speak:(id)sender{
system("say %@", [textinput stringValue]);
}
*的TextInput是NSTextField
的IBOutlet
。
我試圖製作一個Mac應用程序,用於說明用戶輸入的NSTextField
文本,使用「system」在終端中使用say
命令。但是,Xcode不斷給出錯誤。在可可應用程序中通過終端講話
- (IBAction)speak:(id)sender{
system("say %@", [textinput stringValue]);
}
*的TextInput是NSTextField
的IBOutlet
。
系統採用單個字符*作爲參數,所以你必須格式化命令字符串,然後才能將其傳遞給系統:
- (IBAction)speak:(id)sender {
NSString *command = [NSString stringWithFormat:@"say %@", [textinput stringValue]];
system([command UTF8String]);
}
感謝您的幫助:) – haseo98
有沒有必要調出該系統命令,只是使用可可語音合成API直接。例如
NSSpeechSynthesizer* speechSynthesizer = [[NSSpeechSynthesizer alloc] init];
[speechSynthesizer startSpeakingString:[textinput stringValue]];
然後很容易設置語音和調整其他設置。
究竟是什麼錯誤? –
是否有任何理由試圖讓系統爲此而不是NSSpeechSynthesizer類? – Abizern
NSSpeechSynthesizer class?,之前聽說過它,它是如何工作的? – haseo98