Nella mia applicazione, voglio che lo scorrimento avvenga, solo con l'azione della rotella di scorrimento da un mouse e non dal gesto di due dita su un trackpad. Fondamentalmente, sto provando a determinare se lo scrollWheelEvent è generato dal mouse o dal trackpad, all'interno - (void) scrollWheel: (NSEvent *) il metodo Event. Da quello che so finora, sembra che non ci sia un modo semplice per raggiungere questo obiettivo.Mac Coco: come distinguere se un evento NSScrollWheel proviene da un mouse o trackpad?
Ho provato a risolvere un problema impostando una variabile booleana su true e false all'interno dell'evento - (void) beginGestureWithEvent: (NSEvent *); e - (void) endGestureWithEvent: (NSEvent *) evento; Ma questa non è una soluzione perché scrollWheel: il metodo viene richiamato più volte, dopo la chiamata a endGestureWithEvent: method.
Ecco il mio codice:
$BOOL fromTrackPad = NO;
-(void)beginGestureWithEvent:(NSEvent *)event;
{
fromTrackPad = YES;
}
-(void) endGestureWithEvent:(NSEvent *)event;
{
fromTrackPad = NO;
}
- (void)scrollWheel:(NSEvent *)theEvent
{
if(!fromTrackPad)
{
//then do scrolling
}
else
{
//then don't scroll
}
}
So che questo è qualcosa che non è standard, ma questo è il mio requisito. Qualcuno sa un modo per farlo ?? Grazie!
Questo suona come qualcosa ad un livello molto più basso. Cosa succede se l'utente scorre con il trackpad e il mouse contemporaneamente? – TheAmateurProgrammer
Ciao TheAmateurProgrammer, come ho detto, la domanda che ho postato non è qualcosa che è standard. Sto cercando un modo per implementare questa funzionalità e qualsiasi idea è apprezzata !. – AProgrammer