30

Xcode を使用して、Mac の画面でマウスの位置を取得する必要があります。私はおそらくそれを行ういくつかのコードを持っていますが、私は常に x と y を 0 として返します:

void queryPointer()
{

    NSPoint mouseLoc; 
    mouseLoc = [NSEvent mouseLocation]; //get current mouse position

    NSLog(@"Mouse location:");
    NSLog(@"x = %d",  mouseLoc.x);
    NSLog(@"y = %d",  mouseLoc.y);    

}

私は何を間違っていますか?画面上の現在位置を取得するにはどうすればよいですか? また、最終的にその位置 (NSPoint に保存されている) を CGPoint にコピーして別の関数で使用する必要があるため、これを x、y 座標として取得するか、これを変換する必要があります。

4

5 に答える 5

56

フロートを %d として出力しようとしているため、作成者の元のコードは機能しません。正しいコードは次のようになります。

NSPoint mouseLoc = [NSEvent mouseLocation]; //get current mouse position
NSLog(@"Mouse location: %f %f", mouseLoc.x, mouseLoc.y);

これを行うために Carbon に行く必要はありません。

于 2009-12-09T08:13:30.127 に答える
27
CGEventRef ourEvent = CGEventCreate(NULL);
point = CGEventGetLocation(ourEvent);
CFRelease(ourEvent);
NSLog(@"Location? x= %f, y = %f", (float)point.x, (float)point.y);
于 2009-07-12T23:27:58.763 に答える
0
NSLog(@"%@", NSStringFromPoint(point));

NSLog は真です。

于 2016-02-12T12:11:17.743 に答える