Перетаскивание представления

У меня есть NSView , который я добавляю как вспомогательное представление другого NSView . Я хочу иметь возможность перетаскивать первый NSView вокруг родительского представления. У меня есть код, который частично работает, но есть проблема с NSView , движущимся в противоположном направлении по оси Y от моего перетаскивания мышью. (т.е. я тащу вниз, он идет вверх и наоборот).

Вот мой код:

// -------------------- MOUSE EVENTS ------------------- \\ 

- (BOOL) acceptsFirstMouse:(NSEvent *)e {
    return YES;
}

- (void)mouseDown:(NSEvent *) e { 
    //get the mouse point
    lastDragLocation = [e locationInWindow];
}

- (void)mouseDragged:(NSEvent *)theEvent {
    NSPoint newDragLocation = [theEvent locationInWindow];
    NSPoint thisOrigin = [self frame].origin;
    thisOrigin.x += (-lastDragLocation.x + newDragLocation.x);
    thisOrigin.y += (-lastDragLocation.y + newDragLocation.y);
    [self setFrameOrigin:thisOrigin];
    lastDragLocation = newDragLocation;
}

Вид перевернут, хотя я изменил его на значение по умолчанию, и это, похоже, не имело значения. Что я делаю не так?

11
задан Doug Richardson 2 September 2019 в 03:19
поделиться