Могу ли я переместить окно, используя объект внутри этого окна? - PullRequest
3 голосов
/ 22 декабря 2009

Можно ли в Какао перемещать окно, перетаскивая объект, который находится внутри этого окна? Например: у меня есть веб-видение внутри окна, большое как окно, поэтому setMovableByWindowBackground, очевидно, не будет работать. Есть ли способ щелкнуть и перетащить веб-представление и переместить все окно?

1 Ответ

5 голосов
/ 22 декабря 2009

Конечно, вы просто должны отслеживать движения мыши, используя mouseDragged.Что-то похожее на это должно работать:

- (void)mouseDragged:(NSEvent *)theEvent
{
   NSPoint currentLocation;
   NSPoint newOrigin;

   NSRect  screenFrame = [[NSScreen mainScreen] frame];
   NSRect  windowFrame = [self frame];

    currentLocation = [NSEvent mouseLocation];
    newOrigin.x = currentLocation.x - initialLocation.x;
    newOrigin.y = currentLocation.y - initialLocation.y;

    // Don't let window get dragged up under the menu bar
    if( (newOrigin.y+windowFrame.size.height) > (screenFrame.origin.y+screenFrame.size.height) ){
        newOrigin.y=screenFrame.origin.y + (screenFrame.size.height-windowFrame.size.height);
    }

    //go ahead and move the window to the new location
    [self setFrameOrigin:newOrigin];
}

Что я получил отсюда: http://www.cocoadev.com/index.pl?SetMovableByWindowBackground

...