Qual é o truque para passar um evento para o próximo respondente na cadeia de respostas?

A Apple é muito engraçada. Quero dizer, eles dizem que isso funciona:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    UITouch* touch = [touches anyObject];
    NSUInteger numTaps = [touch tapCount];
    if (numTaps < 2) {
        [self.nextResponder touchesBegan:touches withEvent:event];
   } else {
        [self handleDoubleTap:touch];
   }
}

Eu tenho um controlador de exibição. Como você sabe, os Controladores de Visualização herdam da UIResponder. Esse View Controller cria um objeto MyView que herda do UIView e o adiciona como uma subvisualização à sua própria visualização.

Então nós temos:

View Controller> tem uma View (automaticamente)> tem um MyView (que é um UIView).

Agora dentro do MyView eu coloquei esse código como acima com um NSLog que imprime "tocou MyView". Mas eu encaminhar o evento para o próximo respondedor, como acima. E dentro do ViewController eu tenho outro método touchesBegan que apenas imprime um NSLog à la "touch view controller".

Agora adivinhe: quando eu toco no MyView, ele imprime "tocou MyView". Quando eu toco fora do MyView, que é a visão do VC, então, eu recebo um "controlador de visão tocado". Então ambos funcionam! Mas o que não funciona é encaminhar o evento. Porque agora, na verdade, o próximo respondedor deve ser o controlador de visualização, já que não há mais nada entre eles. Mas o método de manipulação de eventos do VC nunca é chamado quando eu o encaminho.

% $ &! § !!

Idéias?

Descobri coisas estranhas Próximo respondedor do MyView é a visão do controlador de visualização. Isso faz sentido, porque o MyView é uma subvisão disso. Mas eu não modifiquei este UIView do controlador de visualização. não é nada personalizado. E não implementa nenhuma manipulação de eventos por toque. A mensagem não deve ser passada para o controlador de exibição? Como eu poderia deixar isso passar? Se eu remover o código de manipulação de eventos no MyView, o evento chegará bem no controlador de exibição.

questionAnswers(8)

yourAnswerToTheQuestion