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

  • bmarian22

    bmarian22

    22 Aralık 2007
  • Chaoticmoogle

    Chaoticmoogl

    13 ŞUBAT 2006
  • Ciaran Blumenfeld

    Ciaran Blume

    20 NİSAN 2009