0

スペースバーが押されたときに、時間を HH:MM:SS で記録しようとしています。私の研究では、ココアにはキーストロークを感知できる NSEvent クラスがあるため、ファンデーションよりもココアを使用する方が簡単であることがわかりました。ダブルスペースバーのヒットを感知する方法について同様の質問がありましたが、それを私のプログラムに関連付ける方法を満足させるものではありませんでした。

以下のコード:

NSDate *startTime = [NSDate date ];
NSTimeInterval elaspedTime = [startTime timeIntervalSinceNow];

-(void)sendEvent:(NSEvent *) theEvent{
    NSString* spaceBarPressed = [ theEvent characters ];
    if( [spaceBarPressed isEqualToString:@"" ] ){
        if(theEvent.type == NSKeyDown )
            NSLog(@"Space bar hit" );
    }
}
4

1 に答える 1

7

次のように実行できます。

- (void)keyDown:(NSEvent *)theEvent { 

    if ([theEvent keyCode] == 49) { //Spacebar keyCode is 49
        NSLog(@"Time is: %@", [NSDateFormatter localizedStringFromDate:[NSDate date] dateStyle:NSDateFormatterNoStyle timeStyle:NSDateFormatterMediumStyle]);
    }
}
于 2012-09-28T19:48:55.457 に答える