2013-05-24 6 views
0

Я внедрил пользовательский NSView (помечен как) и могу получить mouseUp :, mouseDown: и mouseMoved: events. Для этого у меня есть acceptsFirstResponder возвращение YES, а также вызвать следующее awakeFromNib:mouseMoved событие останавливается, когда мышь отсутствует

[[self window] makeFirstResponder:self]; 
[[self window] seAcceptsMouseMovedEvents:true]; 

Однако крайне странное дело в том, что если я нажимаю и перетащить, то mouseMoved: события перестают приходить, пока я не отпустил мышь и получите mouseUp:

Я видел другие связанные записи, но все они говорят, что если представление является первым ответчиком (и оно есть), то я должен получать эти события.

Почему mousemoved: событие останавливается?

ответ

5
-(void)mouseDragged:(NSEvent *)event 

вызывается вместо

-(void)mouseMoved:(NSEvent *)event 

, когда левая кнопка мыши нажата. Поэтому, если у вас есть что-то, что вам нужно сделать в обоих случаях, вызовите общий метод, чтобы сделать это с обоих из них.

+0

Спасибо, какой окончательный и простой ответ! Я хочу, чтобы у всех вопросов были ответы на этот симпатичный (: – Locksleyu