Не видя вашего кода обработки событий, трудно понять, что происходит, но я подозреваю, что вы, возможно, вызываете super
реализацию различных методов обработки событий в ваших реализациях.
NSView
является подклассом NSResponder
, поэтому по умолчанию необработанные события передаются по цепочке респондента.Суперпредставление представления является следующим объектом в цепочке респондента, поэтому, если вы вызовете, например, [super mouseDown:event]
в вашей реализации ‑mouseDown:
, событие будет передано суперпредставлению.
Исправлениечтобы убедиться, что не вызывает super
реализацию в ваших обработчиках событий.
Это неверно:
- (void)mouseDown:(NSEvent*)anEvent
{
//do something
[super mouseDown:event];
}
Это правильно:
- (void)mouseDown:(NSEvent*)anEvent
{
//do something
}