0

私は、キーボード入力ごとに1回だけコマンドを起動するものを構築しようとしています(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ため、毎回リセットされる必要はありません。

私はこれでほとんどすべてを試したので、何かアイデアや洞察があれば、それは素晴らしいことです。ありがとう!

4

1 に答える 1

0

最終的にそれを理解しました。完全な解決策はここにあります

于 2012-05-11T14:46:24.650 に答える