Quelqu'un sait pourquoi UIViewController ne deviendrait pas le premier répondeur lorsque j'exécute ce code:
- (BOOL)canBecomeFirstResponder { return YES; }
3 Réponses :
Avez-vous un UIscrollView dans cette UIViewController? P>
Je crois que UiscrollView prend votre statut de main-de-mange car il souhaite obtenir le robinet avant qu'il ne soit passé. Cependant, à toutes fins utiles, je pense que vous allez bien, car le mécanisme de détection de secoueur passera par l'UISCrollView à votre contrôleur d'affichage s'il doit.
C'est le point - je ne peux pas détecter les shakes nulle part dans le code. J'ai commencé à creuser et j'ai constaté que VC ne devient pas le premier répondant
Comme je le soupçonné, j'ai supposé mal à propos de appel Note latérale: Pour construire sur les commentaires des autres, il n'a pas vraiment de sens pour un Bien que cela puisse être une déclaration complètement incorrecte, il peut y avoir un comportement non documenté dans UIViewController code> /
Strapresponder code> Utilisation. Ce thread dans les forums Apple Dev parle spécifiquement de la secouette au travail. P >
Réponse originale H2>
devisesfirstreponder code> sur l'élément UI que vous souhaitez répondre. Les événements seront automatiquement transférés au code> uiviewcontroller de code> tant qu'aucun autre objet de la chaîne implique les méthodes touchées (ou continuez au moins de les transmettre à la chaîne). P>
uiviewcontroller code> pour être le "premier" répondeur. Le premier répondeur doit être un objet avec une représentation à l'écran (un
uiview code> ou l'une de ses sous-classes). p>
uiviewcontroller code> qui l'empêche de devenir le facilitail manifeste en raison de ces problèmes (quelqu'un plus intelligent que moi pourra vérifier la validité de la validité de Ceci). P>
Je suis d'accord avec vous, mais comment voudriez-vous ajouter une fonctionnalité de détection de secousse? Je peux avoir la méthode dans l'une des sous-classes UIVIEW, mais comment puis-je vous garantir que je détecterai toujours des shakes à moins que la méthode est dans la classe la plus parentale?
Bon point, j'ai mis à jour ma réponse avec quelques informations que j'ai trouvées dans les forums de développement
Corey, ça a fonctionné. La clé était de rendre le premier répondeur de VC à ViewDidAppear.
Maintenant, je ne peux que détecter les shakes sur le démarrage. J'ai eu Uiscrollview avec le groupe d'uiviews imbriqués, et il est toujours un défi de les faire détecter les shakes aussi .... :(
Vous devrez peut-être remplacer la motion a commencé / terminé les méthodes dans les sous-espoirs ou au moins dans la vision de ScrollView également et gérez le transfert manuellement. Les événements de passage traversant Uiscrollview ont été délicats, il aime généralement avaler des événements (toucher). Pas sûr des événements de mouvement.
Assurez-vous de définir votre UIViewController pour être le premier répondeur après em> vous avez affecté une affectation de la vue à votre instance de fenêtre. p>
Pépite d'informations utiles ci-dessus! Appeler [auto-résigneur-dépression] sur mon contrôleur d'affichage échoue parce que j'avais déjà retiré sa vue de l'écran
Je n'ai jamais utilisé devenue devenue dans un UIViewController et je ne peux pas comprendre pourquoi vous auriez besoin de. Cela ne répond pas à la saisie de l'utilisateur, il est toutefois des vues d'enfants.
Un objet répondeur ne devient que le premier répondant si le répondeur actuel peut démissionner le statut du premier répondeur (CanresignfirSponder) et le nouveau répondeur peut devenir le premier répondeur. Qui est le premier répondeur actuel?
Puis-je demander pourquoi est-il essentiel que l'UIViewController soit le premier répondant?
Nick - Je veux détecter des tremblements (avec une méthode motivée qui est envoyée au premier répondant uniquement) Oxigen - Je n'ai pas vérifié cela, je le ferai. Corey - Comme je l'ai dit à Nick, j'ai besoin de recevoir un message motivé quelque part, et puisque j'ai choisi Uiviewontroller, j'en ai besoin pour être le premier répondeur pour cela
La fonctionnalité des annulations semble exiger que la VC devienne également le premier répondant. Au moins, c'est comme ça que je le lis et que je l'ai eu pour travailler.