У меня есть собственный класс представления, который получает события мыши.Я не получаю правильные координаты событий mouseDown или mouseUp.Независимо от того, где я щелкаю внутри вида, я получаю одни и те же неправильные координаты.
Это функция, которая есть в моем пользовательском классе NSView
- (void)mouseDown:(NSEvent *)theEvent
{
NSPoint coordinateInBaseWindow = theEvent.locationInWindow;
NSPoint coordinateInView = [self convertPoint:coordinateInBaseWindow fromView:nil];
NSLog(@"left mouse down (x,y) =(%f,%f)", coordinateInView.x, coordinateInView.y);
}
У меня аналогичный обработчик mouseUp
event.
Теперь выходные данные всегда
левая мышь вниз (x, y) = (0.000000, -1.996910)
левая мышь вверх (x,y) = (0.000000,0.000000)
Независимо от того, где я щелкаю внутри вида, координаты левой клавиши мыши всегда (0,000000, -1,996910), а левой клавиши вверх всегда (0,000000,0,000000).).
- Что я делаю не так?Почему я не могу получить правильные координаты события щелчка мыши?
- mouseDown и mouseUp вместе делают один клик.Разве координаты mouseDown и mouseUp не должны совпадать?Почему они отличаются в этом случае?
Редактировать 1:
Как указано omz , я должен был использовать convertPoint:fromView:
но это тоже не решило проблему.Я все еще получаю те же координаты.
Редактировать 2: Мои спецификаторы формата в NSLog были неверны, что давало мне совершенно неверные результаты.