These delegate methods will automatically call according to the trigger.
Code for .h Controller. @interface UIController : UIViewController <UITextFieldDelegate>{
}
-(void)setViewMovedUp:(BOOL)movedUp;
Code for .m Controller.
- (void)viewWillAppear:(BOOL)animated{
// watch the keyboard so we can adjust the user interface if necessary.
[[NSNotificationCenter defaultCenter ] addObserver:self selector:@selector(keyboardWillShow:)
name:UIKeyboardWillShowNotification object:self.view.window];
[[NSNotificationCenter defaultCenter ] addObserver:self selector:@selector(keyboardWillHide:)
name:UIKeyboardWillHideNotification object:self.view.window];
}
- (void)viewWillDisappear:(BOOL)animated{
[self setEditing:NO animated:YES];
// unregister for keyboard notifications while not visible.
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillShowNotification object:nil];
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillHideNotification object:nil];
}
#pragma mark - UIViewController delegate methods
- (void) keyboardWillShow:(NSNotification *)notif{
// The keyboard will be shown. If the user is editing the comments, adjust the display so that the
// comments field will not be covered by the keyboard.
if((txtCity.editing==TRUE) || (txtTwitterID.editing==TRUE) || (txtTwitterPassword.editing==TRUE) || (txtFacebookID.editing==TRUE) || (txtFacebookPassword.editing==TRUE) || (txtPostalCode.editing == TRUE) || (txtState.editing == TRUE) || (txtCountry.editing == TRUE) || (txtTeamName.editing==TRUE)){
}
else {
[self setViewMovedUp:YES];
}
}
- (void) keyboardWillHide:(NSNotification *)notif{
// The keyboard will be hidden.
// view should be shifted donw to its real position.
[self setViewMovedUp:NO];
}
-(void)textViewDidBeginEditing:(UITextView *)textView{
[self setViewMovedUp:YES];
}
-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
if([text isEqualToString:@"\n"]) {
[txtViewDescription resignFirstResponder];
[self setViewMovedUp:NO];
return NO;
}
return NO;
}
- (void)textFieldDidBeginEditing:(UITextField *)textField{
// The keyboard will be shown. If the user is editing the comments, adjust the display so that the
// comments field will not be covered by the keyboard.
if((txtCity.editing==TRUE) || (txtTwitterID.editing==TRUE) || (txtTwitterPassword.editing==TRUE) || (txtFacebookID.editing==TRUE) || (txtFacebookPassword.editing==TRUE) || (txtPostalCode.editing == TRUE) || (txtState.editing == TRUE) || (txtCountry.editing == TRUE) || (txtTeamName.editing==TRUE)){
}
else {
[self setViewMovedUp:YES];
}
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField{
[txtCity resignFirstResponder];
[txtTwitterID resignFirstResponder];
[txtPostalCode resignFirstResponder];
[txtTwitterPassword resignFirstResponder];
[txtState resignFirstResponder];
[txtFacebookID resignFirstResponder];
[txtFacebookPassword resignFirstResponder];
[txtCountry resignFirstResponder];
[txtAdministratorName resignFirstResponder];
[txtFlickrID resignFirstResponder];
[txtAdminEmailID resignFirstResponder];
[txtFlickrPassword resignFirstResponder];
[txtNumberOfDivisions resignFirstResponder];
[txtLevels resignFirstResponder];
[self setViewMovedUp:NO];
return NO;
}
- (void)setViewMovedUp:(BOOL)movedUp{
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.3];
// Make changes to the view's frame inside the animation block. They will be animated instead
// of taking place immediately.
CGRect rect = self.view.frame;
if (movedUp){
if(rect.origin.y == 0)
rect.origin.y = self.view.frame.origin.y - 216;
}
else{
if(rect.origin.y < 0)
rect.origin.y = self.view.frame.origin.y + 216;
}
self.view.frame = rect;
[UIView commitAnimations];
}
No comments:
Post a Comment