Objective-C:IBAction上的小鼠位置

时间:2013-12-10 14:31:24

标签: objective-c mouseevent

我有一个IBAction,当激活时,应该等到单击鼠标然后打印位置。我该怎么做呢?我的尝试:

BOOL finished = NO;
while (!finished) {
    if ([NSEvent pressedMouseButtons] == 1) {
        finished = YES;
        NSLog(@"%f | %f", [NSEvent mouseLocation].x, [NSEvent mouseLocation].y);
    }
}

确实有效,但会显示忙碌的鼠标指针。所以我想必须有一个更好的方法。

1 个答案:

答案 0 :(得分:0)

IBaction和Click事件都只发生在主线程上。看起来你在IBAction中使用while循环阻塞主线程,直到鼠标点击发生,就像把主线程忙。

你应该在辅助线程中运行while while循环,这样在循环检查时主线程将没有这个。