Вам придется создать подкласс UIWindow
с вашим собственным классом и переопределить метод sendEvent:
. Но помните, что метод получает другие типы событий - не только касания, поэтому вы должны проверить тип события (event.type == UIEventTypeTouches
). Кроме того, поскольку вы получаете набор касаний, вы можете проверить, какие из них только что начались, какие закончились, переместились и т. Д. Для этого вам нужно выполнить итерацию по allTouches и проверить свойство phase
каждого UITouch
.
@implementation TouchWindow
- (void)sendEvent:(UIEvent *)event {
if (event.type == UIEventTypeTouches) {
for(UITouch * t in [event allTouches]) {
if(t.phase == UITouchPhaseBegan) {
/*
Paste your code here.
Inform objects that some touch has occurred.
It's your choice if you want to perform method/selector directly,
use protocols/delegates, notification center or sth else.
*/
}
}
}
[super sendEvent:event];
}
@end
Конечно, TouchWindow является подклассом UIWindow
@interface TouchWindow : UIWindow
@end
И вам, вероятно, придется изменить этот класс в файле .xib в XCode