2010-06-14 4 views
1
-(void)keyboardWillShow : (NSNotification *)sender { 
    @try { 
//  NSLog(@"notification in first view"); 
     for (UIWindow *keyboardWindow in [[UIApplication sharedApplication] windows]) { 
      for (UIView *keyboard in [keyboardWindow subviews]) { 
       if([[keyboard description] hasPrefix:@"<UIKeyboard"] == YES) { 
        NSValue *v = [[sender userInfo] valueForKey:UIKeyboardBoundsUserInfoKey]; 
        CGRect kbBounds = [v CGRectValue]; 
        if(keyboardToolbar == nil) { 
         keyboardToolbar = [[UIToolbar alloc] initWithFrame:CGRectZero]; 
         keyboardToolbar.barStyle=UIBarStyleBlackOpaque; 
         keyboardToolbar.tintColor = [UIColor colorWithRed:0.6 green:0.2 blue:0.6039 alpha:1]; 
         UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStyleBordered target:self action:@selector(dismissKeyboard)]; 
         UIBarButtonItem *flex = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; 
         NSArray *items = [[NSArray alloc] initWithObjects:flex, barButtonItem, nil]; 
         [keyboardToolbar setItems:items]; 
         [items release]; 
        }    
        [keyboardToolbar removeFromSuperview]; 
        keyboardToolbar.frame = CGRectMake(0, 0, kbBounds.size.width, 45); 
        [keyboard addSubview:keyboardToolbar]; 
        keyboard.bounds = CGRectMake(kbBounds.origin.x, kbBounds.origin.y, kbBounds.size.width, kbBounds.size.height + 87); 

        for(UIView* subKeyboard in [keyboard subviews]) { 
         if([[subKeyboard description] hasPrefix:@"<UIKeyboardImpl"] == YES) { 
          subKeyboard.bounds = CGRectMake(kbBounds.origin.x, kbBounds.origin.y - 45, kbBounds.size.width, kbBounds.size.height); 
         }      
        } 
       } 
      } 
     } 
    } @catch (NSException * e) { 
//  NSLog(@"Problem in keyboardWillShow:%@",e); 
    } 

} 

mais ce code fonctionne dans iphone sdk 3.0, mais ce code ne fonctionne pas dans le SDK de l'iPhone 4.0 il est dit que la clé d'information de l'utilisateur de rebond uikeyboard dépréciée dans l'iPhone OS 4.0 ne crée pas la barre d'outils par DONE bouton s'il vous plaît me guider comment pourrais-je faireUIKeyboardBoundsUserInfoKey dépréciée dans l'iPhone OS 4.0

Répondre

1

vous pouvez essayer avec

if ([[currentWindow description] hasPrefix:@"<UITextEffectsWindow"]) 
     { 
      NSLog(@"Key board found"); 
} 

Mais vous ne pouvez pas cacher que je pense. Vous pouvez mettre votre vue personnalisée dessus mais cacher le UIKeyboard Je ne pense pas que cela fonctionnera pour iOS 4.

Questions connexes