2011-03-11 25 views
7

मैं एक टैबबार ऐप में काम कर रहा हूं। एक दृश्य में एक UISearchBar है और, जब दबाया जाता है, तो कीबोर्ड दिखाई देता है।कीबोर्ड टैबबार छुपाता है

समस्या यह है कि कीबोर्ड टैबबार को छुपाता है।

क्या आप इसे हल करने के बारे में जानते हैं?

+0

उपयोगकर्ता खोज पट्टी में खोज करने के लिए कुछ टाइपिंग पर ध्यान केंद्रित किया जाता है, आप टैब दिखाए जाने के लिए क्यों चाहते हो? – Viraj

+0

मैं यह भी कहूंगा कि मानक व्यवहार है और आपको इसे बदलना नहीं चाहिए। –

+0

@ वीरज मेरी समीक्षा चाहता है कि, मेरी गलती नहीं है: पी – JAA

उत्तर

0
मेरी जानकारी के लिए

आप नहीं कर सकते कुंजीपटल के लिए कदम .. तो कुंजीपटल

here

एक और link

13

से लिया ऊपर टैब-बार स्थानांतरित करने के लिए परिवर्तन इस्तेमाल करने की कोशिश के बाद से यह था यह एक समय हो गया है पूछा, लेकिन दस्तावेज़ीकरण के लिए, यहां यह जाता है: सबसे पहले, कुंजीपटल अधिसूचना प्राप्त करने के लिए NSNotificationCenter की सदस्यता लें:

-(void) viewWillAppear:(BOOL)animated 
{ 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillToggle:) 
              name:UIKeyboardWillShowNotification object:nil]; 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillToggle:) 
              name:UIKeyboardWillHideNotification object:nil]; 
} 

सदस्यता समाप्त करने के

- (void)viewWillDisappear:(BOOL)animated 
{ 
[self.view endEditing:YES]; 
[super viewWillDisappear:animated]; 
[[NSNotificationCenter defaultCenter] removeObserver:self 
               name:UIKeyboardWillShowNotification object:nil]; 
[[NSNotificationCenter defaultCenter] removeObserver:self 
               name:UIKeyboardWillHideNotification object:nil]; 
} 

मत भूलना फिर समारोह है कि सूचना केंद्र द्वारा बुलाया जाएगा लागू:

- (void) keyboardWillToggle:(NSNotification *)aNotification 
{ 
CGRect frame = [[[self tabBarController] tabBar] frame]; 
CGRect keyboard = [[aNotification.userInfo valueForKey:@"UIKeyboardFrameEndUserInfoKey"] CGRectValue]; 
frame.origin.y = keyboard.origin.y - frame.size.height; 
[UIView animateWithDuration:[[aNotification.userInfo valueForKey:@"UIKeyboardAnimationDurationUserInfoKey"] floatValue] animations:^ 
{ 
    [[[self tabBarController] tabBar] setFrame:frame]; 
}]; 

इस कीबोर्ड की गति से TabBar चेतन जाएगा और शीर्ष पर रखने के ।

+1

यह स्वीकार्य उत्तर होना चाहिए। – Sirens

+0

मैं 'UIKeyboardDidChangeFrameNotification' का उपयोग करके पुनः सक्षम होगा अन्यथा आप स्प्लिट कीबोर्ड http://stackoverflow.com/a/13495680/296446 के साथ परेशानी में भाग लेंगे। – Robert

0

मैंने देशी uikeyboard के बजाय एक कस्टम कीबोर्ड दिखाकर इसे हल किया।

इस github लिंक से नमूना प्रोजेक्ट डाउनलोड करें।

वांछित देशी कीपैड में कीपैड को कस्टमाइज़ करें या तो यह संख्या या शब्द है।

फिर ऊपर की छवि जैसी छवि जैसे टैबबार नियंत्रकों के साथ कस्टम कीपैड के नीचे यूबूटन रखें। इसे आज़माएं (भविष्य के आगंतुक), यह इस मुद्दे को हल कर सकता है।

enter image description here