2012-02-10 8 views
6

sto affrontando uno strano comportamento con cacao NSView su Mac OS X.NSView Mouse tracking

Ho un costume NSView in un contenitore NSView, questa usanza NSView tracce movimenti del mouse, clic, e ha un tooltip. Quando aggiungo un NSView sopra la vista descritta, posso ancora vedere i suggerimenti anche se la vista con il suggerimento è sotto, dietro e non visibile.

Sono quasi sicuro di aver frainteso qualcosa nella catena di gestione degli eventi.

Qualsiasi aiuto è molto apprezzato! ;)

Avere un bel weekend,

Paolo

risposta

0

Se non lo si usa più è possibile chiamare il metodo removeFromSuperview.

NSView *myView 
[myView alloc] init] 
// do stuff 
[myView removeFromSuperview] 

se proprio non si desidera ricevere gli eventi è possibile chiamare il metodo resignFirstResponder

NSView *myView 
[[myView alloc] init] 
// do stuff 
[myView resignFirstResponder] 
1

La questione centrale è che non si suppone di avere una vista che si sovrappongono a Cocoa. O almeno, il comportamento diventa quindi indefinito. Una vista può essere una sottoview di un'altra vista, ma non semplicemente un fratello entro i limiti dell'altra vista.

Tuttavia, un modo per risolvere il problema specifico consiste nel rendere la vista sotto nascosta, utilizzando il metodo setHidden:.