#objective-c #cocoa #nsview
#objective-c #cocoa #nsview
Вопрос:
После добавления вложенного представления в NSView мои события мыши реагируют на область NSView за вычетом addedSubVIew. Как я могу этого избежать? Я хочу, чтобы он реагировал на все супервизии. Спасибо.
Ответ №1:
Вы также можете реализовать метод hitTest: в представлении контейнера.
- (NSView *) hitTest: (NSPoint) aPoint {
return [super hitTest:aPoint] ? self : nil;
}
Теперь только представление контейнера может получать события мыши.
Ответ №2:
Вы можете переопределить метод вложенных просмотров [NSView hitTest:]
и вернуть супервизор.
- (NSView *) hitTest: (NSPoint) aPoint {
return [self superview];
}
Комментарии:
1. Спасибо, но есть ли способ получше, потому что у меня есть nsimageview, nstextfield и nstextview, и я не хочу создавать подклассы для всех них только для переопределения этого метода. Еще раз спасибо.