2012-09-18 11 views
0

J'ai sur UIWebView en ce que je permets l'édition à l'exécution.Comment détecter la touche d'entrée du clavier?

Maintenant, quand je clique sur UIWebView puis le clavier de l'iPad s'ouvre pour l'écriture, maintenant mon exigence est de savoir comment détecter que j'ai cliqué sur entrer la clé du clavier de l'iPad ?.

Je sais que nous pouvons réaliser ceci si nous éditons dans UITextView ou UITextField avec l'aide de ses délégués. Aidez-moi!

J'ai une fonction en javascript qui le détecte. Maintenant, puis-je l'appeler en utilisant le code objectif-c et obtenir la valeur de retour comme vrai ou faux?

+0

Vérifiez les fonctions disponibles, lorsque vous cliquez sur sur la touche d'entrée – Ranjit

Répondre

1

je fait mon travail en javascript comme ça ...

Dans le fichier HTML

function returnEnterPress(e){ 
    var key;  
    if(window.event) 
      key = window.event.keyCode; //IE 
    else 
      key = e.which; //firefox  
      // ENTER KEY MUNBER IS 13 // KD 
    if(key == 13) 
    { 
     window.location.href = 'enterClicked/0'; 
    } 
    else 
    { 
     var range = window.getSelection().getRangeAt(0).endOffset; 
     if(range == 0) 
     { 
      window.location.href = 'enterClicked/'+range; 
     } 
    } 
    return true; 
} 

<body onKeyPress="return returnEnterPress(event)"> 

Dans mon Objective-C Code

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{ 

    if([[[request URL] absoluteString] rangeOfString:@"enterClicked"].location!=NSNotFound) // When "enterClicked" found 
    { 
     //Do your desired work 
     return NO; 
    } 
} 
0

Je ne pense pas qu'il existe une API publique pour gérer le clavier à ce niveau. C'est un gros effort (à cause des claviers internationaux) mais une option serait d'écouter les notifications UIKeyboardWillShow et de superposer le clavier avec les UIView transparents pour les boutons que vous voulez écouter. Vous pouvez capturer le toucher, puis le transmettre aux vues ci-dessous (le clavier) et laissez-le faire.

Vous pouvez même remplacer (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event; dans votre bouton transparent. Donc, vous capturez le fait qu'il a été tactile mais retournez NO de toute façon afin que le clavier obtienne le contact. La difficulté est alors de savoir où est chaque clé, en fonction des types de clavier que vous devez supporter.

0

Utilisez une notification par clavier. J'ai utilisé le code suivant pour détecter le clavier va se cacher

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(nothing) name:UIKeyboardWillHideNotification object:nil]; 
} 
-(void)nothing 
{ 
    NSLog(@"do Whatever u want"); 
} 

l'essayer.,.

+0

Je ne suis pas sûr que cela fonctionne si l'utilisateur a un clavier matériel - si vous l'utilisez, vous devriez vérifier le simulateur en utilisant l'option "Simuler le clavier matériel". –

+0

@MikeM ici la question est si l'utilisateur a cliqué sur la touche entrée du clavier de l'iPad. Je réponds à la question qu'il a posée. ajouter: si l'utilisateur dispose d'un clavier matériel, la notification fonctionnera également. – Manikandan

0

Vous pourriez être capable de le comprendre en utilisant une sorte de Javascript, mais je voudrais simplement utiliser un bouton formulaire/soumettre.

Questions connexes