- (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 |