Откройте окно NSW, нажав NSRect в какао - PullRequest
0 голосов
/ 31 мая 2009

В моей программе я могу определить, был ли сделан щелчок мышью в пределах определенного NSRect. Как я могу открыть новое окно NSW, нажав этот NSRect?

Ответы [ 2 ]

2 голосов
/ 31 мая 2009

Если вы хотите отобразить существующее окно (которое вы создали с помощью Interface Builder), просто вызовите makeKeyAndOrderFront для вашего объекта окна. Если вы хотите создать новое окно программно, вы найдете ответ здесь .

0 голосов
/ 01 июня 2009

Для обработки событий вы должны реализовать соответствующие методы NSResponder в своем подклассе NSView или NSViewController. Например, вы можете реализовать mouseDown: и -mouseUp: для обработки щелчков мыши (довольно упрощенно), например:

- (void) mouseDown: (NSEvent *) event
{
    if ( [event type] != NSLeftMouseDown )
    {
        // not the left button, let other things handle it
        [super mouseDown: event];
        return;
    }

    NSPoint location = [self convertPoint: [event locationInWindow] fromView: nil];
    if ( !NSPointInRect(location, self.theRect) )
    {
        [super mouseDown: event];
        return;
    }

    self.hasMouseDown = YES;
}

- (void) mouseUp: (NSEvent *) event
{
    if ( (!self.hasMouseDown) || ([event type] != NSLeftMouseUp) )
    {
        [super mouseUp: event];
        return;
    }

    NSPoint location = [self convertPoint: [event locationInWindow] fromView: nil];
    if ( !NSPointInRect(location, self.theRect) )
    {
        [super mouseDown: event];
        return;
    }

    self.hasMouseDown = NO;

    // mouse went down and up within the target rect, so you can do stuff now
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...