[转]textField键盘显示问题


http://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/TextandWeb/TextandWeb.html



Listing 5-1  Handling the keyboard notifications



// Call this method somewhere in your view controller setup code.


- (void)registerForKeyboardNotifications


{


    [[NSNotificationCenter defaultCenter] addObserver:self


            selector:@selector(keyboardWasShown:)


            name:UIKeyboardDidShowNotification object:nil];


 


    [[NSNotificationCenter defaultCenter] addObserver:self


            selector:@selector(keyboardWasHidden:)


            name:UIKeyboardDidHideNotification object:nil];


}


 


// Called when the UIKeyboardDidShowNotification is sent.


- (void)keyboardWasShown:(NSNotification*)aNotification


{


    if (keyboardShown)


        return;


 


    NSDictionary* info = [aNotification userInfo];


 


    // Get the size of the keyboard.


    NSValue* aValue = [info objectForKey:UIKeyboardBoundsUserInfoKey];


    CGSize keyboardSize = [aValue CGRectValue].size;


 


    // Resize the scroll view (which is the root view of the window)


    CGRect viewFrame = [scrollView frame];


    viewFrame.size.height -= keyboardSize.height;


    scrollView.frame = viewFrame;


 


    // Scroll the active text field into view.


    CGRect textFieldRect = [activeField frame];


    [scrollView scrollRectToVisible:textFieldRect animated:YES];


 


    keyboardShown = YES;


}


 


 


// Called when the UIKeyboardDidHideNotification is sent


- (void)keyboardWasHidden:(NSNotification*)aNotification


{


    NSDictionary* info = [aNotification userInfo];


 


    // Get the size of the keyboard.


    NSValue* aValue = [info objectForKey:UIKeyboardBoundsUserInfoKey];


    CGSize keyboardSize = [aValue CGRectValue].size;


 


    // Reset the height of the scroll view to its original value


    CGRect viewFrame = [scrollView frame];


    viewFrame.size.height += keyboardSize.height;


    scrollView.frame = viewFrame;


 


    keyboardShown = NO;


}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值