2012-12-03 3 views
0

Il n'y a aucun problème lors de l'exécution sur le simulateur, mais les notifications ne s'affichent pas sur les appareils (iPad 3 et Mini sous iOS 6). Si je publie la notification moi-même, le gestionnaire est appelé. Je me demandais si certains d'entre vous ont eu des idées là-dessus.Les notifications clavier ne se déclenchent pas sur l'appareil

Voici le code mise en place des gestionnaires:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(iPadEditSetTitleHandleKeyboardDidShowNotification:) name:UIKeyboardDidShowNotification object:nil]; 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(iPadEditSetTitleHandleKeyboardWillShowNotification:) name:UIKeyboardWillShowNotification object:nil]; 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(iPadEditSetTitleHandleKeyboardWillHideNotification:) name:UIKeyboardWillHideNotification object:nil]; 

Et les définitions des gestionnaires eux-mêmes:

- (void)iPadEditSetTitleHandleKeyboardWillHideNotification:(NSNotification *)notification 
- (void)iPadEditSetTitleHandleKeyboardWillShowNotification:(NSNotification *)notification 
- (void)iPadEditSetTitleHandleKeyboardDidShowNotification:(NSNotification *)notification 

Toute aide est appréciée.

MISE À JOUR:

a lancé un nouveau projet pour obtenir tout de la route est le contrôleur de vue ici, tout cela.

// 
// DWViewController.m 
// KeyboatdTest 
// 
// Created by Dan Wesnor on 12/3/12. 
// Copyright (c) 2012 Dan Wesnor. All rights reserved. 
// 

#import "DWViewController.h" 

@interface DWViewController() 

@end 

@implementation DWViewController 


- (void)handleKeyboardNotification:(NSNotification *)notification 
{ 
    NSLog(@"%@", notification.name); 
} 



- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleKeyboardNotification:) name:UIKeyboardWillShowNotification object:nil]; 
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleKeyboardNotification:) name:UIKeyboardWillHideNotification object:nil]; 
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleKeyboardNotification:) name:UIKeyboardDidShowNotification object:nil]; 
} 



- (void)didReceiveMemoryWarning 
{ 
    [super didReceiveMemoryWarning]; 
    // Dispose of any resources that can be recreated. 
} 



@end 

Le storyboard contient un seul champ de texte. Tout le reste est le modèle standard d'application à vue unique.

Toujours pas de joie. Fonctionne comme il se doit dans le simulateur, mais pas sur l'iPad lui-même. Cela pourrait-il être quelque chose à faire avec le provisionnement ou quelque chose en dehors du code lui-même?

+0

Fonctionne-t-elle sur n'importe quel périphérique ou ne fonctionne pas sur tous les périphériques dont vous disposez? –

+0

Juste vérifié et cela fonctionne très bien sur iPhone. N'échoue que sur tous mes iPads. –

+0

Vous pouvez vous définir comme un observateur pour rien, cela vous donnera toutes les observations. Vous pouvez l'utiliser pour vérifier si les notifications sont déclenchées ou non. [[NSNotificationCenter defaultCenter] addObserver: auto-sélecteur: @selector (someselector :) nom: nil objet: nil]; Ensuite, connectez-vous simplement au nom de notifcation. – Bergasms

Répondre

5

Voici un bon comportement non documenté.

Ces 3 notifications ne sont pas déclenchées lorsque le clavier est divisé. Mais, il semble qu'attacher UITextField.inputAccessoryView avant qu'ils ne tirent habituellement, ils se déclenchent même si le clavier est divisé. Attachez donc la vue accessoire après avoir reçu UIKeyboardWillChangeFrameNotification et les trois autres se déclencheront normalement.

Questions connexes