我试图在不破坏其功能的情况下捕获 UIKeyboard 中的所有触摸事件。我试过了:
- 命中测试:
- UIGestureRecognizer
- 在顶部添加一个 UIWindow 并将事件传递给下一个响应者
然而,这些都没有奏效。
而且似乎我们不允许对 UIKeyboard 进行子类化。
你能想到任何可行的方法吗?
谢谢,
顶峰
更新:
让我们简化问题:如何添加将特定触摸事件传递给下一个响应者的 UIView 或 UIWindow(就像将userInteractionEnabled设置为 NO 一样)?
这是我的代码(当然不能工作......):
- (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];
}