我正在尝试构建一个每次键盘输入只会触发一次命令的东西(而不是像 QC 本身那样的每一帧)。为此,我尝试监听键盘输入(通过 Freeboard)并将当前输入与以前的版本进行比较。
似乎正在发生的事情是每次执行补丁时都会擦除以前的版本,所以我比较字符串的条件每次都失败。这里有一些代码让它更清楚一点:
- (BOOL)execute:(id <QCPlugInContext>)context atTime:(NSTimeInterval)time withArguments:(NSDictionary *)arguments
{
self.outputPrevious=previousCharacter;
if ([self.inputCharacter caseInsensitiveCompare:previousCharacter]){
self.outputText=@"SAME";
}
else {
self.outputText=@"CHANGE";
}
previousCharacter = [NSString stringWithString:self.inputCharacter];
[previousCharacter retain];
return YES;
}
其中 self.outputText 是告诉我 if 结果的文本,self.outputPrevious 是告诉我上一个字符输入是什么,self.inputCharacter 是当前键盘输入。
previousCharacter 在标头中定义并在 中实例化-init
,因此不应每次都将其重置。
我已经尝试了几乎所有的东西,所以如果你有任何想法或见解,那就太棒了。谢谢!