Передача сенсорных событий в представление UIViewController - PullRequest
1 голос
/ 05 октября 2010

Я пытаюсь, чтобы приложение iPad отражало экран приложения на дополнительный экран с помощью кабеля VGA.Из-за проблем с производительностью, я хочу, чтобы мой вид отображался только на дополнительном экране, но все же регистрировал сенсорные события через экран iPad.

Мой текущий метод - два UIWindows: один для экрана, подключенного к VGA, которыйпоказывает все виды, анимацию и т. д. и другое окно UIWindow для экрана iPad, которое фиксирует сенсорные события.Это отлично работает с точки зрения производительности, и я могу регистрировать сенсорные события, полученные на экране iPad.

Но по какой-то причине я не могу передать методы touchesBegan:, touchesEnded: и т. Д. На мой UIViewControllers и получить ихреагировать правильно.Если я отправлю его прямо на UIViewController, я смогу захватить его, переопределив события касания на UIViewController, но это полезно только для захвата касаний на фоне, но не для кнопок и т. Д., Добавляемых к UIViewController.

Затем я попытался отправить сенсорные события на viewController.view, и они исчезли где-то еще.Я даже пытался перебирать каждое подпредставление в контроллере представления, но все еще не играли в кости.

Я, должно быть, упускаю что-то простое, какие-нибудь идеи?

1 Ответ

2 голосов
/ 26 ноября 2010

У меня тоже была эта проблема. Ваша проблема может быть решена очень просто. Вы можете просто перезаписать метод hitTest из UIView, например:

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent*)event
{
  return [[[[UIApplication sharedApplication] delegate] secondWindow] hitTest:point withEvent:event];
}

, и вы можете передать сенсорное событие другому представлению. Моя проблема сложнее твоей. Я хочу «скопировать» событие, а не только «передать» его. Кто-нибудь знает, как это сделать?

...