मेरे पास एक टेक्स्ट फ़ील्ड के साथ UIAlertView है। यह दृश्य सही ढंग से काम करता है; यह स्क्रीन के ऊपरी आधे हिस्से में दिखाई देता है, इसलिए जब कीबोर्ड आता है, तो दोनों बटन और टेक्स्ट एंट्री अभी भी दृश्यमान और टैप करने योग्य होते हैं।

हालाँकि, यदि किसी अन्य एप्लिकेशन से कोई स्थानीय या दूरस्थ सूचना आती है, जबकि टेक्स्ट फ़ील्ड पहला उत्तरदाता है और कीबोर्ड चालू है, तो यह मेरे अलर्ट को छुपाता है और नए अलर्ट को कीबोर्ड के पीछे रखता है। यदि अलर्ट एक से अधिक लाइन लंबा है, तो इसके बटनों को क्लिक नहीं किया जा सकता है और उपयोगकर्ता इसे खारिज नहीं कर सकता है। यह किसी भी सामान्य तंत्र के माध्यम से मेरे सतर्क दृश्य को खारिज नहीं कर रहा है - न तो alertView:clickedButtonAtIndex: या alertView:cancel: को मेरे प्रतिनिधि को बुलाया जाता है - बल्कि कुछ अज्ञात तंत्र का उपयोग करके इसे अस्थायी रूप से छुपाता है।

जब कोई अधिसूचना मेरे अलर्ट दृश्य को छुपाती है तो क्या मुझे अधिसूचित किया जा सकता है, ताकि मैं कीबोर्ड को खारिज कर सकूं और उपयोगकर्ता को अधिसूचना से निपटने दे सकूं? क्या इस मामले को पकड़ने के लिए मैं कोई अन्य घटनाएँ कर सकता हूँ?

1
user79758 8 अगस्त 2011, 13:22

2 जवाब

सबसे बढ़िया उत्तर

आवेदन के लिए पंजीकरण करें UIApplicationWillResignActiveNotification; जब आपको वह मिल जाए, तो अपने अलर्ट व्यू को खारिज कर दें। डॉक्स से:

एक सक्रिय एप्लिकेशन को फोकस कहा जा सकता है। लॉन्च होने के बाद यह फोकस प्राप्त करता है, ओवरले विंडो पॉप अप होने पर या डिवाइस लॉक होने पर फोकस खो देता है, और डिवाइस अनलॉक होने पर फोकस प्राप्त करता है।

अलर्ट दृश्य, जैसे कि अन्य ऐप्स के नोटिफिकेशन द्वारा प्रस्तुत किए गए, ओवरले विंडो हैं। उस अधिसूचना के लिए देखें, अपना अलर्ट बंद करें ताकि कीबोर्ड रास्ते में न आए, और अगर आपके ऐप को UIApplicationDidBecomeActiveNotification मिलता है तो अलर्ट को फिर से प्रदर्शित करने के लिए तैयार रहें।

2
Noah Witherspoon 11 अगस्त 2011, 00:20

मुझे उम्मीद है कि इससे सहायता मिलेगी...

- (void)willPresentAlertView:(UIAlertView *)alertView {
   if (newAlertViewWhichBlocks.tag == alertView.tag) {
    [yourTextField resignFirstResponder];
   }
}

अलर्ट व्यू के प्रतिनिधि को सेट करना याद रखें।

0
illuminatus 10 अगस्त 2011, 16:15
मेरे पास अधिसूचना UIAlertView पर नियंत्रण नहीं है - इसका कोई प्रतिनिधि नहीं है जिसे मैं सेट कर सकता हूं, और मेरी समझ यह है कि यह मेरी मेमोरी स्पेस में भी नहीं चलता है।
 – 
user79758
10 अगस्त 2011, 18:37