SORU
11 Mayıs 2010, Salı


UİKeyboardBoundsUserİnfoKey yerine kullanmak ne?kaldırılmış.

Bir iPad app 3.2 sdk kullanarak üzerinde çalışıyorum. Klavye arkasında ise gizleniyor benim TextField öğeleri önlemek için boyutu elde etme ile uğraşıyorum.

Böyle büyük mükafat olarak bir Uyarı - ^ alıyorum . UİKeyboardBoundsUserİnfoKey kaldırılmış ben onun yerine bu uyarı almak için ne gerekir?

CEVAP
11 Mayıs 2010, Salı


UIKeyboardBoundsUserInfoKey documentation

Bir NSValue için anahtar penceresinde klavyenin dikdörtgen koordinatları, sınırları tanımlayan bir CGRect içeren nesne. Bu değer, klavye boyutunu elde etmek için yeterlidir. Eğer ekrandaki klavye (veya animasyon öncesi ve sonrası) kökeni kullanmak istiyorsanız değerleri UİKeyboardCenterBeginUserİnfoKey ile sözlük bilgi kullanıcı veya UİKeyboardCenterEndUserİnfoKey sabitleri elde edilir.Bu UİKeyboardFrameBeginUserİnfoKey kullanmak ya da anahtar yerine UİKeyboardFrameEndUserİnfoKey.

Apple bir kolaylık bu Kategori UIScreen ek olarak uygulayabileceği gibi: rutin uygulama önerir

  (CGRect) convertRect:(CGRect)rect toView:(UIView *)view {
    UIWindow *window = [view isKindOfClass:[UIWindow class]] ? (UIWindow *) view : [view window];
    return [view convertRect:[window convertRect:rect fromWindow:nil] fromView:nil];
}

kurtarmak için pencere-ayarlanabilir klavye çerçeve boyutu özellikleri.

Cihazın yönünü kontrol içeren farklı bir yaklaşım aldı:

CGRect _keyboardEndFrame;
[[notification.userInfo valueForKey:UIKeyboardFrameEndUserInfoKey] getValue:&_keyboardEndFrame];
CGFloat _keyboardHeight = ([[UIDevice currentDevice] orientation] == UIDeviceOrientationPortrait || [[UIDevice currentDevice] orientation] == UIDeviceOrientationPortraitUpsideDown) ? _keyboardEndFrame.size.height : _keyboardEndFrame.size.width;

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jeremy Stark

    Jeremy Stark

    23 Mayıs 2010
  • Phymec

    Phymec

    18 Temmuz 2009
  • williamfitzsimmons

    williamfitzs

    14 Mart 2008