Я делаю приложение удаленного контроллера мыши 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.)
Я не знаю, почему это происходит, что делать и как отлаживать.