मुझे हाल ही में मेरे ऐप में एक समस्या मिली है जो केवल आईओएस 10 में होती है जहां सिस्टम कीबोर्ड करता है प्रोग्रामिंग रूप से एक टेक्स्ट फ़ील्ड को एक पूर्णता वाले हैंडलर के अंदर पहले उत्तरदाता बनने के लिए प्रदर्शित नहीं करते हैं - विशेष रूप से पूरा होने वाला हैंडलर मैं टच आईडी प्रयास से वापस आ जाता हूं।आईओएस कीबोर्ड (यूरीमोटकेबोर्डबोर्ड के अंदर) नहीं दिखाया जाता है जब यूआईटीएक्स्टफाल्ड टच आईडी प्राप्ति ब्लॉक (आईओएस 10 केवल) में पहला उत्तरदायी बनता है
कुंजीपटल नहीं दिखाया गया है, भले ही इस समस्या का पागल हिस्सा है, आईफोन पर क्षेत्र जहां कीबोर्ड सामान्य रूप से होगा, तब भी इनपुट स्पर्श करने का जवाब दे रहा है जैसे उपयोगकर्ता कीबोर्ड पर टाइप कर रहा है!
जांच और इस मुद्दे की जांच डिबगिंग का एक बहुत करने के बाद, मैं तथ्य यह है कि hidden
संपत्ति निजी UIRemoteKeyboardWindow
के बाद becomeFirstResponder
पाठ क्षेत्र पर शुरू हो जाती है बनाया जाता है उस पर YES
पर सेट है भर में ठोकर खाई। अन्य परिस्थितियों में जहां मैं कुंजीपटल लाता हूं और hidden
संपत्ति का मान आउटपुट करता हूं, यह NO
पर सेट होता है।
क्या कोई और आईओएस 10 में इस समस्या में भाग लेता है? यदि हां, तो किसी को इसका समाधान मिला? मैंने खिड़की के उदाहरण पर hidden
मान YES
पर मैन्युअल रूप से सेट करने का प्रयास किया लेकिन इसका कोई प्रभाव नहीं पड़ा। मैं इस बिंदु पर स्ट्रॉ पर बहुत ज्यादा पकड़ रहा हूं।
संलग्न:
यहाँ UIApplication
उदाहरण से खिड़कियों के उत्पादन में जब पाठ क्षेत्र स्पर्श ID पूरा होने हैंडलर के बाहर पहली प्रत्युत्तर हो जाता है:
और जब यह स्पर्श ID हैंडलर के अंदर पहले प्रत्युत्तर हो जाता है :
पहले अपडेट
इसलिए मैंने becomeFirstResponder
को मुख्य धागे पर नहीं किया था, इससे पहले कि कुछ ने बताया है, लेकिन दुर्भाग्य से, इस मुद्दे को हल नहीं किया गया - हालांकि, मैंने कुछ अतिरिक्त खोज की हैं। hidden
विंडो समस्या इंस्टेंस की विंडो के विवरण को becomeFirstResponder
क्रिया जारी करने के तुरंत बाद आउटपुट करने से उत्पन्न होती है। ऐसा करने के बाद, मैंने UITextField
संपादन कॉलबैक पर ब्रेकपॉइंट सेट किया और कीबोर्ड (जो अदृश्य है) के साथ बातचीत करने के लिए आगे बढ़ें - और जब मैं विंडो विवरण आउटपुट करता हूं, तो ऐसा लगता है कि hidden
संपत्ति YES
पर सेट नहीं है (जो संभवतः इस संपत्ति को इस मुद्दे के कारण के रूप में सेट कर सकता है), लेकिन मेरे पास अभी भी एक अदृश्य कीबोर्ड है! मैं दृश्य पदानुक्रम डिबगिंग शुरू कर दिया और नीचे यह कैसा जब मैं कुंजीपटल खिड़की की जांच लग रहा है का एक स्क्रीनशॉट है:
उम्मीद है कि आप लोगों को देख सकते हैं कि मैं यहाँ की खोज की है जो कि है चाबियाँ मौजूद हैं लेकिन कुछ सफेद दृश्य उन्हें दृष्टि से अवरुद्ध कर रहे हैं। बात यह है कि, मुझे अपनी ऐप स्क्रीन पर उन सफेद दृश्यों को भी नहीं देखा जाता है। मैं बस देखता हूं कि कीबोर्ड मौजूद होने पर सामान्य रूप से क्या बैठता है।
क्या पूरा करने वाला हैंडलर और आपकी कॉल 'थ्रेड फर्स्ट रेस्पॉन्डर' को मुख्य धागे पर किया जा रहा है? – dan
डैनियल, क्या आप इसे दूर करने में कामयाब रहे हैं? – theiOSDude
@theiOSDude, @dan --- माफ करना गेंट, सप्ताहांत के लिए बंद था और इस पर फिर से विचार नहीं किया। मुख्य धागे पर महान विचार, पूरी तरह से उस पर विचार करना भूल गए। दुर्भाग्यवश, मुख्य कतार पर 'बनें फर्स्ट रेस्पॉन्डर' करने से छिपी हुई खिड़की के मुद्दे को हल नहीं किया गया। लेकिन मैंने कुछ अन्य खोज किए हैं जिनके साथ मैं मुख्य पोस्ट अपडेट करूंगा। – Danchez