在iPad的键盘隐藏文本框(Keyboard hiding textfield in iPad)

2019-10-28 15:19发布

您好我有一个问题,键盘隐藏UITextFieldUIScrollView

对于我使用苹果的文档一些代码。

在viewDidLoad中

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(keyboardWasShown:)
                                             name:UIKeyboardDidShowNotification object:nil];

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(keyboardWillBeHidden:)
                                             name:UIKeyboardWillHideNotification object:nil];

 - (void)keyboardWasShown:(NSNotification*)aNotification
 {
     int rowNumber=(selectetTxtfld.tag-1)/7;
     if (rowNumber>2) {
         NSDictionary* info = [aNotification userInfo];
         CGSize kbSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
         CGRect bkgndRect = selectetTxtfld.superview.frame;
         bkgndRect.size.height += kbSize.height;
         [selectetTxtfld.superview setFrame:bkgndRect];
         [scrlView setContentOffset:CGPointMake(0.0, selectetTxtfld.frame.origin.y-200) animated:YES];
     }

}

 - (void)keyboardWillBeHidden:(NSNotification*)aNotification
 {   
     UIEdgeInsets contentInsets = UIEdgeInsetsZero;
     scrlView.contentInset = contentInsets;
     scrlView.scrollIndicatorInsets = contentInsets;
     scrlView.contentOffset=CGPointZero;
}

现在它工作正常。 但我听说在代码行

  [scrlView setContentOffset:CGPointMake(0.0, selectetTxtfld.frame.origin.y-200) animated:YES];

键盘的高度,我使用200.If我像这样使用苹果将拒绝该应用程序。 那是正确与否。

我想这个代码也。 但没有显示scrllview的文本字段和内容

    [scrlView setContentOffset:CGPointMake(0.0, selectetTxtfld.frame.origin.y-kbSize.height) animated:YES];

在我的应用我使用的方向

 - (NSUInteger)supportedInterfaceOrientations
 {
     return UIInterfaceOrientationMaskLandscapeRight;
 }

所以,请帮助我如何使用键盘的高度。

Answer 1:

为了获得键盘尺寸:

- (void) keyboardWasShown:(NSNotification *)nsNotification {
    NSDictionary *userInfo = [nsNotification userInfo];
    CGSize kbSize = [[userInfo objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;

    NSLog(@"Height: %f Width: %f", kbSize.height, kbSize.width);
    // Portrait:    Height: 264.000000  Width: 768.000000
    // Landscape:   Height: 1024.000000 Width: 352.000000
}


文章来源: Keyboard hiding textfield in iPad