Я делаю приложение удаленного контроллера мыши iphone для Mac: приложение iPhone отправляет значения координат на Mac, который затем обрабатывает значение местоположения мыши.
Чтобы получить текущее местоположение мыши на Mac, получатель вызывает [NSEvent mouseLocation].
Значение x всегда правильное, но значение y неправильное.
Я использовал цикл «while» для обработки этого события.
while (1) {
mouseLoc = [NSEvent mouseLocation];
while ((msgLength = recv(clientSocket, buffer, sizeof(buffer), 0)) != 0) {
CGPoint temp;
temp.x = mouseLoc.x;
temp.y = mouseLoc.y; // wrong value
........
Значение y отличается в каждом периоде цикла. Например, значение y равно 400 в первом цикле, y равно 500 в следующем цикле; тогда y снова будет 400 в следующем цикле.
Указатель мыши постоянно поднимается и опускается, а сумма двух разных значений y всегда равна 900 (я думаю, потому что разрешение экрана составляет 1440 * 900).
Я не знаю, почему это происходит, что делать и как это отлаживать.
mouseLocation
не является статическим методом. - person David   schedule 20.11.2011NSEvent
. - person apaderno   schedule 20.11.2011