这可能是一个基本问题,但我对 Cocoa、Objective-C 和 OOP 很陌生,而且我无法在任何地方找到答案。
在我正在编写的应用程序中,我想在用户按下特定按钮时播放声音文件。我为此使用了 NSSound,并且在实现它时没有问题。问题是,我只知道如何通过每次按下按钮时创建一个新的 NSSound 对象来做到这一点:
- (IBAction)playSound:(id)sender {
NSSound *sound = [[NSSound alloc] initWithContentsOfFile:kSoundFilePath byReference:YES];
[sound play];
}
这对我来说是个问题,因为如果用户在文件完成播放之前反复单击按钮,它将创建 NSSound 的新实例,并且它们都将相互叠加播放,这是我不想要的。有没有一种方法可以在该方法之外创建 NSSound 对象,并让按钮的 IBAction 方法检查 NSSound 是否正在播放,然后再告诉它再次播放?