Ich versuche, alle Berührungsereignisse in einem UIKeyboard zu erfassen, ohne die Funktionalität zu beeinträchtigen. Ich habe versucht:Übergeben Sie bestimmte Berührungsereignisse in UIView/UIWindow an den nächsten Responder (sendEvent:/hitTest: Funktioniert nicht)
- HitTest:
- UIGestureRecognizer
- eine UIWindow in der oberen Hinzufügen und passieren Ereignisse zum nächsten Responder
jedoch keiner von ihnen arbeitete.
Und es scheint, dass wir das UIKeyboard nicht unterteilen dürfen.
Können Sie an irgendeine Methode denken, die möglicherweise funktioniert?
Danke,
Spitzen
Update:
Lässt das Problem vereinfachen: Wie kann ich eine UIView oder UIWindow hinzufügen, die spezifische Ereignisse Kontakt zu den nächsten Responder geht (wie bei der Einstellung userInteractionEnabled zu NO)?
Heres mein Code (natürlich nicht funktionieren kann ...):
- (void)sendEvent:(UIEvent *)event {
NSLog(@"%@",event);
//if ([self eventIsNoteworthy:event]) [self extraEventHandling:event];
[super sendEvent:event]; // Apple says you must always call this!
}
-(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
CGPoint hitPoint = [underneathButton convertPoint:point fromView:self];
if ([underneathButton pointInside:hitPoint withEvent:event]) return underneathButton;
NSLog(@"Called");
return [super hitTest:point withEvent:event];
//return mainWindow;
}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
NSLog(@"Start");
[self.nextResponder touchesBegan:touches withEvent:event];
}
Wenn Sie Touch-Ereignisse sagen, meinen Sie die Sequenz bestimmte Tasten wurden gedrückt? – blake305
@ blake305 Nein, ich meine die CGPunkte der berührten Positionen. – PeakJi
Möchten Sie nun Ihre eigene Tastatur erstellen, sie präsentieren und die Buchstaben an das textField übergeben lassen, und NSLoggen Sie die CGPoints? – AMayes