質問

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 正確に何が起こるかを把握する(表示または非表示)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top