我有一个IBAction,当激活时,应该等到单击鼠标然后打印位置。我该怎么做呢?我的尝试:
BOOL finished = NO;
while (!finished) {
if ([NSEvent pressedMouseButtons] == 1) {
finished = YES;
NSLog(@"%f | %f", [NSEvent mouseLocation].x, [NSEvent mouseLocation].y);
}
}
确实有效,但会显示忙碌的鼠标指针。所以我想必须有一个更好的方法。
答案 0 :(得分:0)
IBaction和Click事件都只发生在主线程上。看起来你在IBAction中使用while循环阻塞主线程,直到鼠标点击发生,就像把主线程忙。
你应该在辅助线程中运行while while循环,这样在循环检查时主线程将没有这个。