2016-08-19 15 views
17

मुझे हाल ही में मेरे ऐप में एक समस्या मिली है जो केवल आईओएस 10 में होती है जहां सिस्टम कीबोर्ड करता है प्रोग्रामिंग रूप से एक टेक्स्ट फ़ील्ड को एक पूर्णता वाले हैंडलर के अंदर पहले उत्तरदाता बनने के लिए प्रदर्शित नहीं करते हैं - विशेष रूप से पूरा होने वाला हैंडलर मैं टच आईडी प्रयास से वापस आ जाता हूं।आईओएस कीबोर्ड (यूरीमोटकेबोर्डबोर्ड के अंदर) नहीं दिखाया जाता है जब यूआईटीएक्स्टफाल्ड टच आईडी प्राप्ति ब्लॉक (आईओएस 10 केवल) में पहला उत्तरदायी बनता है

कुंजीपटल नहीं दिखाया गया है, भले ही इस समस्या का पागल हिस्सा है, आईफोन पर क्षेत्र जहां कीबोर्ड सामान्य रूप से होगा, तब भी इनपुट स्पर्श करने का जवाब दे रहा है जैसे उपयोगकर्ता कीबोर्ड पर टाइप कर रहा है!

जांच और इस मुद्दे की जांच डिबगिंग का एक बहुत करने के बाद, मैं तथ्य यह है कि hidden संपत्ति निजी UIRemoteKeyboardWindow के बाद becomeFirstResponder पाठ क्षेत्र पर शुरू हो जाती है बनाया जाता है उस पर YES पर सेट है भर में ठोकर खाई। अन्य परिस्थितियों में जहां मैं कुंजीपटल लाता हूं और hidden संपत्ति का मान आउटपुट करता हूं, यह NO पर सेट होता है।

क्या कोई और आईओएस 10 में इस समस्या में भाग लेता है? यदि हां, तो किसी को इसका समाधान मिला? मैंने खिड़की के उदाहरण पर hidden मान YES पर मैन्युअल रूप से सेट करने का प्रयास किया लेकिन इसका कोई प्रभाव नहीं पड़ा। मैं इस बिंदु पर स्ट्रॉ पर बहुत ज्यादा पकड़ रहा हूं।

संलग्न:
यहाँ UIApplication उदाहरण से खिड़कियों के उत्पादन में जब पाठ क्षेत्र स्पर्श ID पूरा होने हैंडलर के बाहर पहली प्रत्युत्तर हो जाता है:
becomeFirstResponder outside of Touch ID completion
और जब यह स्पर्श ID हैंडलर के अंदर पहले प्रत्युत्तर हो जाता है :

becomeFirstResponder inside of Touch ID completion

पहले अपडेट

इसलिए मैंने becomeFirstResponder को मुख्य धागे पर नहीं किया था, इससे पहले कि कुछ ने बताया है, लेकिन दुर्भाग्य से, इस मुद्दे को हल नहीं किया गया - हालांकि, मैंने कुछ अतिरिक्त खोज की हैं। hidden विंडो समस्या इंस्टेंस की विंडो के विवरण को becomeFirstResponder क्रिया जारी करने के तुरंत बाद आउटपुट करने से उत्पन्न होती है। ऐसा करने के बाद, मैंने UITextField संपादन कॉलबैक पर ब्रेकपॉइंट सेट किया और कीबोर्ड (जो अदृश्य है) के साथ बातचीत करने के लिए आगे बढ़ें - और जब मैं विंडो विवरण आउटपुट करता हूं, तो ऐसा लगता है कि hidden संपत्ति YES पर सेट नहीं है (जो संभवतः इस संपत्ति को इस मुद्दे के कारण के रूप में सेट कर सकता है), लेकिन मेरे पास अभी भी एक अदृश्य कीबोर्ड है! मैं दृश्य पदानुक्रम डिबगिंग शुरू कर दिया और नीचे यह कैसा जब मैं कुंजीपटल खिड़की की जांच लग रहा है का एक स्क्रीनशॉट है:

Debugging Keyboard Window #1

Debugging Keyboard Window #2

उम्मीद है कि आप लोगों को देख सकते हैं कि मैं यहाँ की खोज की है जो कि है चाबियाँ मौजूद हैं लेकिन कुछ सफेद दृश्य उन्हें दृष्टि से अवरुद्ध कर रहे हैं। बात यह है कि, मुझे अपनी ऐप स्क्रीन पर उन सफेद दृश्यों को भी नहीं देखा जाता है। मैं बस देखता हूं कि कीबोर्ड मौजूद होने पर सामान्य रूप से क्या बैठता है।

+0

क्या पूरा करने वाला हैंडलर और आपकी कॉल 'थ्रेड फर्स्ट रेस्पॉन्डर' को मुख्य धागे पर किया जा रहा है? – dan

+0

डैनियल, क्या आप इसे दूर करने में कामयाब रहे हैं? – theiOSDude

+0

@theiOSDude, @dan --- माफ करना गेंट, सप्ताहांत के लिए बंद था और इस पर फिर से विचार नहीं किया। मुख्य धागे पर महान विचार, पूरी तरह से उस पर विचार करना भूल गए। दुर्भाग्यवश, मुख्य कतार पर 'बनें फर्स्ट रेस्पॉन्डर' करने से छिपी हुई खिड़की के मुद्दे को हल नहीं किया गया। लेकिन मैंने कुछ अन्य खोज किए हैं जिनके साथ मैं मुख्य पोस्ट अपडेट करूंगा। – Danchez

उत्तर

16

एक अस्थायी समाधान के रूप में, एक देरी इस तय करने के बाद becomeFirstResponder फोन, तथापि, hacky समाधान के साथ खुश नहीं।

+0

वाह, उस समाधान पर अच्छा खोज - और निश्चित रूप से दुखी होने पर सहमत है कि हमें वांछित परिणाम प्राप्त करने के लिए हैकिंग तक जाना है। कुंजीपटल के लिए आपको कितने देरी के लिए सेट करना पड़ा? – Danchez

+0

@DanielSanchez मीठा, क्या आप इस उत्तर को सही के रूप में चिह्नित कर सकते हैं :) 1 सेकंड की भयानक देरी का उपयोग किया गया है और जीएम जारी होने के बाद पुनरीक्षण कर रहा है इस मुद्दे को बीटा से संबंधित है। – theiOSDude

+0

वास्तव में इस पर आपके समय की सराहना करते हैं। हो सकता है कि आपने इसे हल्के से पहले ही छुआ हो, लेकिन किसी भी विचार/विचार पर हमें इस पर जाने की आवश्यकता क्यों है और इस तरह देरी क्यों है? मैं यह समझने की कोशिश कर रहा हूं कि यह क्यों जरूरी है और क्यों आईओएस 10 बनाम आईओएस 9 पर व्यवहार अलग है - (फिर फिर आईओएस 10 अभी भी बीटा में है, इसलिए यह हो सकता है कि यह कुछ भी हो सकता है जब यह नीचे हो विकास मुझे लगता है)। – Danchez

3

ऐसा लगता है कि विभिन्न परिदृश्यों के लिए होने वाली समस्या भी होती है - कीबोर्ड स्पर्श करने के बाद मैन्युअल रूप से टेक्स्ट फ़ील्ड का चयन कर रहे हैं, तो भी कीबोर्ड अदृश्य हो सकता है।

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