2013-08-12 2 views
0

У меня довольно простой вопрос, для которого я не мог найти простой ответ. При использовании какао (osx, xcode) и метода под названием mouseDown, который определяет, нажала ли мышь на просмотр, как определить, на какую кнопку мыши щелкнула? Мне просто нужно имя класса, чтобы я мог узнать, нажал ли пользователь, например NSImageView, WebView, NSTextView или на NSView. Или еще лучше, если у меня есть два NSImageViews на моем NSView, как определить, на какой из них был нажат?Объект под mouseDown COCOA

Cheers.

+0

Ваш вопрос немного неясен. Что вы пытаетесь достичь на высоком уровне? –

ответ

1

На ваш взгляд метод MouseDown, вы можете вызвать Трассировка: метод, чтобы получить самый дальний потомок приемника в иерархии представлений, что кликнули:

Так ваш взгляд подклассе, вы могли бы сделать что-то вроде:

- (void)mouseDown:(NSEvent *)theEvent 
{ 
    id clickedObject = [self hitTest:[theEvent locationInWindow]]; 

    if ([clickedObject isKindOfClass:[NSImageView class]]) { 
     NSLog(@"Clicked an ImageView"); 
    } else if ([clickedObject isKindOfClass:[WebView class]]) { 
     NSLog(@"Clicked a WebView"); 
    } 
} 

Ваш вопрос кажется немного странным, хотя, как правило, вам не нужно выполнять этот тест, проверяя себя.

Если вы пытаетесь получить событие клика при щелчке по определенному изображению, лучшим способом было бы использовать кнопку без рамки с набором изображений, а затем реализовать метод действия и связать это с кнопкой.

+0

Это именно то, что мне нужно. Спасибо за вашу помощь! – jovanjovanovic

+0

'id clickedObject = [self hitTest: [theEvent locationInWindow]];' Это именно то, что мне нужно – jimwan

Смежные вопросы