영삼이의 IT정보2012. 6. 10. 17:08

- (void) viewDidLoad 에서

scrollView.contentSize = self.view.frame.size;

선언 이후 화면 변환(키보드 등장)에 대한 노티피케이션 감시 코드 추가

1) viewWillAppear 에서 UIKeyboardDidShowNotification 과 UIKeyboardDidHideNotification 등록

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

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidHide:) name:UIKeyboardDidHideNotification object:nil];


-(void)keyboardDidShow:(NSNotification *)notif 
{
//키보드를 여러 객체들이 열 수 있는데, 자신의 키보드에만 반응하기 위해서, 이 정보를 갖고 있어야 한다
  if(keyboradVisible) 
  { return; }
  NSDictionary* info = [notif userInfo];
  NSValue* aValue = [info objectForKey:UIKeyboardBoundsUserInfoKey];
  CGSize keyboardSize = [aValue CGRectValue].size;

  CGRect viewFrame = self.view.frame;
  viewFrame.size.height -= keyboardSize.height;

  scrollView.frame = viewFrame;
  keyboardVisible = YES;
}

-(void)keyboardDidhide:(NSNotification *)notif 
{
  if(!keyboardVisible)
  { return; }

  NSDictionary *info = [notif userInfo];
  NSValue *aValue = [info objectForKey:UIKeyboardBoundsUserInfoKey];
  CGSize keyboardSize = [aValue CGRectValue].size;

  CGRect viewFrame = self.view.frame;
  viewFrame.size.height += keyboardSize.height;

  scrollView.frame = viewFrame;
  
  keyboardVisible = NO;
  
}

2) viewWillDisappear 에서 등록 해지

[[NSNotificationCenter defaultCenter
] removeObserver:self]



'영삼이의 IT정보' 카테고리의 다른 글

Tabbar 아이콘  (0) 2012.06.11
StoreKit  (0) 2012.06.10
아이폰 OS 개발 자료 총정리  (2) 2012.06.04
UIImageJPEGRepresentation  (0) 2012.06.04
XHTML/CSS 무료 템플릿 배포사이트  (0) 2012.06.01
Posted by 다오나무