키보드가 나타날 때 뷰를 위로 올려야하는 사람들에게 종종 제안되는 것처럼 UIScrollView를 사용합니다. 나는 복사하여이 페이지의 정보 붙여 넣기 - http://developer.apple.com/library/ios/#documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/KeyboardManagement/KeyboardManagement.html#//apple_ref/doc/uid/TP40009542-CH5-SW7을 - 그렇게 ...키보드가 튀어 나오면 UIScrollView가 잘못된 방향으로 스크롤되는 이유는 무엇입니까?
그러나 무슨 일 나는 텍스트 필드를 누를 때, 키보드가 팝업하지만보기가 실제로 검은 공개, DOWN 스크롤입니다 위에. 그 후 실제로 수동으로 스크롤하여 숨겨진 텍스트 필드를 표시 할 수 있습니다 ... 분명히 그 일은 내가하려고하는 것이 아닙니다!
아이디어가 있으십니까? 나는() 메소드의 viewDidLoad에서 다음과 같은 한 : - :
- (void) keyboardWasShown:(NSNotification *)aNotification
{
NSDictionary * info = [aNotification userInfo];
CGSize keyboardSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
UIEdgeInsets contentInsets = UIEdgeInsetsMake(0, 0,keyboardSize.height, 0);
[[self introScroll] setContentInset:contentInsets];
[[self introScroll] setScrollIndicatorInsets:contentInsets];
CGRect ltdRect=[[self view] frame];
ltdRect.size.height=keyboardSize.height;
if (!CGRectContainsPoint(ltdRect,[self activeField].frame.origin))
{
CGPoint scrollPoint = CGPointMake(0,[self activeField].frame.origin.y-keyboardSize.height);
[[self introScroll] setContentOffset:scrollPoint animated:YES];
}
NSLog(@"Keyboard out!");
}
뿐만 아니라 keyboardWasShown이 버전 :
(무효)은 내가 keyboardWasShown이 버전을 시도했습니다{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWasShown:) name:UIKeyboardDidShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillBeHidden:) name:UIKeyboardWillHideNotification object:nil];
}
을의 viewDidLoad
- (void)keyboardWasShown:(NSNotification*)aNotification {
NSDictionary* info = [aNotification userInfo];
CGSize kbSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
CGRect bkgndRect = [[[self activeField] superview ]frame];
bkgndRect.size.height += kbSize.height;
[[[self activeField] superview] setFrame:bkgndRect];
[[self introScroll] setContentOffset:CGPointMake(0.0, [self activeField].frame.origin.y-kbSize.height) animated:YES];
}
둘 다 나와 똑같은 결과를줍니다.
무슨 일 이니? Xcode 4.6을 사용하고 있습니다.
내 솔루션? AlexWien의 "scrollpoint.y에 44 개 추가"- 제가 344 개를 만들었다는 것을 제외하고는 :) 지금 작동합니다. :) 고마워요, 알렉스 ... 그런데 키보드와 동기화하여 위쪽으로 스크롤 할 수있는 방법은 없으므로 둘 다 동시에 움직일 수 있습니까? – ScatteredFrog
아래에 게시 된 내 솔루션이 ios7에서 더 이상 작동하지 않습니다. 당신도 ios7을 위해 그것을 해결 했습니까? 방법? – AlexWien