Ответ Барри будет работать, но вернет местоположение мыши во время вызова функции. Это нормально, если событие обрабатывается вскоре после его генерации, но лучшим подходом будет:
- (void)mouseDown:(NSEvent *)event {
NSPoint location = [self convertPointFromBase:[event locationInWindow]];
//Move sprite to location
}
При этом всегда будет использоваться местоположение мыши с момента создания события. Кроме того, ответ Барри предполагает, что окно и экран используют одинаковые координаты. Обычно это так, но иногда лучше просто быть в безопасности.