2012-12-21 16 views
5

मैं इस मुद्दे में पहले सप्ताह में और फिर से भाग गया था। जब मैं आईपैड के लैंडस्केप मोड में होता हूं तो कीबोर्ड पर स्क्रीन पर दिखाई देने पर कीबोर्ड कीबोर्ड ऑफसेट सेट करने की प्रक्रिया में होता है। आईपैड का 1024 x 768 का आयाम है।आईपैड कीबोर्ड ऊंचाई क्यों है, जब लैंडस्केप मोड में, 1024px?

- (void) keyboardWasShown:(NSNotification *)nsNotification { 
    NSDictionary *userInfo = [nsNotification userInfo]; 
    CGSize kbSize = [[userInfo objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size; 

    NSLog(@"Height: %f Width: %f", kbSize.height, kbSize.width); 
    // Portrait: Height: 264.000000 Width: 768.000000 
    // Landscape: Height: 1024.000000 Width: 352.000000 
} 

यह कैसे है कि कीबोर्ड की ऊंचाई 1024 हो सकती है? इसका मतलब यह होगा कि कीबोर्ड अब पूरी स्क्रीन को कवर कर रहा है। मुझे लगता है कि ऊंचाई 352 होनी चाहिए, और चौड़ाई 1024 होनी चाहिए। क्या यह एक बग है?

उत्तर

10

से http://developer.apple.com/library/ios/documentation/uikit/reference/UIWindow_Class/UIWindowClassReference/UIWindowClassReference.html#//apple_ref/doc/uid/TP40006817-CH3-SW27

UIKeyboardFrameBeginUserInfoKey

एक CGRect कि स्क्रीन निर्देशांक में कीबोर्ड के शुरू फ्रेम को दिखाता है जिसमें एक NSValue वस्तु के लिए कुंजी। इंटरफ़ेस अभिविन्यास परिवर्तनों के परिणामस्वरूप ये निर्देशांक विंडो की सामग्री पर लागू किसी भी रोटेशन कारकों को ध्यान में रखते हैं। इस प्रकार, आपको आयत को विंडो समन्वय में परिवर्तित करने की आवश्यकता हो सकती है (कन्वर्ट्रैक्ट का उपयोग करके: विन्डो: विधि) या इसका उपयोग करने से पहले निर्देशांक (कनवर्ट्रैक: सेव्यू: विधि का उपयोग करके) को देखने के लिए।

संबंधित मुद्दे