Как захватить ВСЕ события touch в iOS?

Я хочу сделать приложение, чтобы оно захватывало все события касания и отображало значение x, y на панели инструментов.

  1. Если можно зафиксировать все события, хотя событие не произошло в этом приложении?
  2. Как показать это приложение на панели инструментов, как значок батареи (когда приложение работает в фоновом режиме)?

Ни одна из ваших целей не может быть выполнена на не-jailbroken устройстве (и, возможно, даже не на корневом), потому что это нарушает дух Sandbox приложения .

1) Вы можете захватывать события касания, когда ваше собственное приложение работает довольно просто. Один из способов – один контроллер корневого представления, реализовать

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event; - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event; - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event; - (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event; 

Если вы действительно заинтересованы в отображении своих координат, вам также придется подумать о таких вопросах, как то, что происходит в случае мультитач.

Однако,

Это невозможно для других приложений. 2) вообще невозможно. У вас нет доступа к строке состояния, и вы не сможете ничего сделать, как захват событий касания, когда приложение все равно находится в фоновом режиме. Вы можете записывать события только тогда, когда ваше приложение находится на переднем плане.