[英]how to hide iPhone keyboard when scrolling is done
-(void)viewWillAppear:(BOOL)animated
{
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:self.view.window];
[super viewWillAppear:animated];
}
-(void)viewWillDisappear:(BOOL)animated
{
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillShowNotification object:nil];
[super viewWillDisappear:animated];
}
-(void)keyboardWillShow:(NSNotification *)notif
{
NSDictionary*info=[notif userInfo];
NSValue* aValue= [info objectForKey:UIKeyboardBoundsUserInfoKey];
CGSize keyboardSize=[aValue CGRectValue].size;
float bottomPoint= (text1.frame.origin.y+text1.frame.size.height+5);
//float bottomPoint= (text2.frame.origin.y+text2.frame.size.height+5);
//float bottomPoint= (text3.frame.origin.y+text3.frame.size.height+5);
scrollAmount=keyboardSize.height - (self.view.frame.size.height - bottomPoint);
if(scrollAmount > 0)
{
moveViewUp = YES;
[self scrollTheView:YES];
}
else
moveViewUp = NO;
}
}
-(void)scrollTheView:(BOOL) movedUp
{
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.3];
CGRect rect = self.view.frame;
if(movedUp)
{
rect.origin.y -= scrollAmount;
}
else
{
rect.origin.y += scrollAmount;
}
self.view.frame = rect;
[UIView commitAnimations];
}
-(BOOL)text1ShouldReturn:(UITextField *)theTextField
{
[theTextField resignFirstResponder];
if(moveViewUp)
[self scrollTheView:NO];
return YES;
}
我已經編寫了這段代碼來滾動視圖,但是當鍵盤消失時它不會返回。
您尚未訂閱UIKeyboardWillHideNotifcation,僅訂閱了Show-因此,當鍵盤隱藏時,它不會執行任何操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.