2017-12-03 1 views
0

키보드는이 문제는 iOS11에 있지만 이전의 iOS 버전에서 발생, 최대 때로는 조금 이동합니다. 두 번째로이 문제는 특정 UITextField 인스턴스가 특정 뷰 컨트롤러 내의 특정 텍스트 필드뿐만 아니라 앱 전체에서 발생합니다.iOS11 키보드 문제 - <a href="https://i.stack.imgur.com/5czzJ.png" rel="nofollow noreferrer">here</a></p> <p>먼저 그림과 같이 잘못된 키보드 높이

UIKeyboardWillShowNotification을 관찰 한 결과, UIKeyboardFrameEndUserInfoKey에 저장된 키보드의 프레임이 정확하지 않은 것으로 나타났습니다. 높이가 정확하지 않습니다. 375 잘못 동안

keyboard frame {{0, 451}, {375, 216}} 
keyboard frame {{0, 292}, {375, 375}} 
keyboard frame {{0, 451}, {375, 216}} 
keyboard frame {{0, 292}, {375, 375}} 
keyboard frame {{0, 292}, {375, 375}} 

(216)는, 정확한 높이를해야한다 : iPhone7 (11.1)에서 실행되는 경우

- (void)keyboardWillShow:(NSNotification *)notification { 
    NSDictionary *info = [notification userInfo]; 
    NSString *curveValue = [info objectForKey:UIKeyboardAnimationCurveUserInfoKey]; 
    CGRect rect = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue]; 
    NSLog(@"keyboard frame: %@", NSStringFromCGRect(rect)); 
} 

우리는 다음과 같은 로그를 얻었다. 키보드의 높이가 화면 너비와 같은 경우가 이상합니다.

iOS 11에서만 발생하기 때문에 IOS 11 키보드 문제라고 생각합니다. 키보드의 높이는 iOS에서 확실히 제어되지만 어떤 이유로 든 높이가 잘못 표시됩니다. .

그러나 까다로운 점은 응용 프로그램의 텍스트 필드를 포함하는 특정보기 컨트롤러를 추출하고 별도의 데모 프로젝트를 만들었 기 때문에 모든 것이 잘 작동한다는 것입니다. 그리고 나는 인터넷 검색으로 다른 사람들에게 비슷한 문제가 발생했다는 것을 발견하지 못했습니다. 그래서 iOS11 키보드 높이 문제를 일으키는 앱의 일부 설정 때문일 수도 있습니다.

혹시 이런 종류의 이상한 문제가 발생 했습니까? 아니면 당신이 어쩌면 범인인지 생각할 수있는 것이 있습니까? 나는 이것에 대한 나의 생각을 다 버렸다. 감사!

+0

https://stackoverflow.com/questions/15402281/convert-uikeyboardframeenduserinfokey-to-view-or-window-coordinates – rmaddy

+0

잘못된 높이가 프레임 변환을 통해 변경되지 않습니다. 이 스레드는 여기의 문제와 관련이 없습니다. @rmaddy –

답변

0

분류되었습니다. 마지막으로 우리가 프로젝트에서 사용하는 UIView 카테고리 때문입니다.

- (void)setWidth:(CGFloat)width; 
- (void)setHeight:(CGFloat)height; 
- (void)setSize:(CGFloat)size; 
- (void)setXPos:(CGFloat)xPos; 
- (void)setYPos:(CGFloat)yPos; 
- (void)setXPos:(CGFloat)xPos yPos:(CGFloat)yPos; 

어떻게 든 iOS11에서 이러한 방법은 예약 된 방법이되고 이러한 방법을 무시하면이 성가신 문제가 발생할 수 있습니다.

관련 문제