質問
AppleドキュメントでiPhoneのキーボードの境界線を見つけましたが、iPadのキーボードの境界が見つかりません。手伝っていただけませんか?
解決 4
他の誰かがそれを必要としているなら、私はそれを見つけました。
キーボード通知ユーザー情報キー
他のヒント
コードの回答全体がこのように見えます。まず、通知に登録する必要があります。
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidShow:) name:UIKeyboardDidShowNotification object:nil];
そして、もっとあります ここ. 。それらを取り除く必要があることに注意してください(使用する removeObserver
).
次に、サイズを取得するために通知を取得するメソッドが必要です。サイズは、最初は回転していないことに注意してください( UIWindow
回転しません。その内容はします)。
- (void) keyboardDidShow:(NSNotification*)notification {
CGRect keyboardFrame = [[[notification userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];
NSLog(@"keyboard frame raw %@", NSStringFromCGRect(keyboardFrame));
UIWindow *window = [[[UIApplication sharedApplication] windows]objectAtIndex:0];
UIView *mainSubviewOfWindow = window.rootViewController.view;
CGRect keyboardFrameConverted = [mainSubviewOfWindow convertRect:keyboardFrame fromView:window];
NSLog(@"keyboard frame converted %@", NSStringFromCGRect(keyboardFrameConverted));
}
明らかに、あなたがあなたに参照している場合 mainSubviewOfWindow
他の手段では、それを使用してください。
ポートレート216ピクセルのiPhoneの場合、ランドスケープ162ピクセル、ポートレートのiPadの場合は264ピクセルとランドスケープ352ピクセルです。これは、2010年の米国のキーボードにとって有効です。
これらのサイズは他の言語では異なる場合があり、私たちにとっても変化する可能性があります。
ユーザーがiPadで「分割」キーボードを使用することを選択した場合は、 uikeyboarddidshownotification/*uikeyboarddidhidhidenotification*通知は起動されません。その代わり、 uikeyboarddidchangeframeNotification 通知は、ShowとHideの両方で起動されます。分析する必要があります keyboardframe.origin.y 正確に何が起こるかを把握する(表示または非表示)。