2010-06-14 81 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); 
    } 

} 

棄用,但這個代碼在iPhone SDK 3.0,但是這個代碼不iphone SDK配合4.0它說,uikeyboard反彈用戶信息的關鍵在iPhone 4.0 OS棄用它不與DONE創建工具欄按鈕請指導我,我怎麼能做到這一點UIKeyboardBoundsUserInfoKey在iPhone 4.0 OS

回答

1

您可以

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

嘗試,但你不能躲,我認爲。你可以把你的自定義視圖,但隱藏UIKeyboard我不認爲它會適用於iOS 4.

相關問題