NSTextField
「システム」を使用してユーザーが入力したテキストを読み上げsay
、ターミナルでコマンドを使用する Mac アプリケーションを作成しようとしています 。ただし、Xcode はエラーを出し続けます。
- (IBAction)speak:(id)sender{
system("say %@", [textinput stringValue]);
}
*textinput は のIBOutlet
ですNSTextField
。
NSTextField
「システム」を使用してユーザーが入力したテキストを読み上げsay
、ターミナルでコマンドを使用する Mac アプリケーションを作成しようとしています 。ただし、Xcode はエラーを出し続けます。
- (IBAction)speak:(id)sender{
system("say %@", [textinput stringValue]);
}
*textinput は のIBOutlet
ですNSTextField
。
システムは単一の char* を引数として受け取るため、システムに渡す前にコマンド文字列をフォーマットする必要があります。
- (IBAction)speak:(id)sender {
NSString *command = [NSString stringWithFormat:@"say %@", [textinput stringValue]];
system([command UTF8String]);
}
システム コマンドを呼び出す必要はなく、Cocoa 音声合成 API を直接使用するだけです。例えば
NSSpeechSynthesizer* speechSynthesizer = [[NSSpeechSynthesizer alloc] init];
[speechSynthesizer startSpeakingString:[textinput stringValue]];
その後、音声の設定やその他の設定の調整も簡単です。