मैं UITextField
पर टच इवेंट्स (विशेष रूप से UIControlEventTouchUpInside
और UIControlEventTouchUpOutside
) पर प्रतिक्रिया देना चाहता हूं, लेकिन UIControlEventTouchCancel
पर आने वाली एकमात्र घटना है।मैं UITextField पर टच इवेंट्स का जवाब कैसे दे सकता हूं?
मैं UIControlEventEditingDidBegin
का उपयोग नहीं कर सकता, क्योंकि यह तब होता है जब फ़ील्ड लाभ केंद्रित होता है, जो मैं पहचानने की कोशिश नहीं कर रहा हूं। मैं जानना चाहता हूं कि जब उपयोगकर्ता वर्तमान फोकस स्थिति के बावजूद, अपनी उंगली को ले जाता है, और चाहे वह टेक्स्ट फ़ील्ड के अंदर या बाहर था।
क्या कोई इसे पूरा करने का तरीका जानता है?
स्पष्ट होने के लिए मैंने addTarget:action:forControlEvents
का उपयोग करने का प्रयास किया है और यह काम नहीं करता है। टच अप इवेंट रद्द करके रोका जाता है।UITextField
से पहले स्पर्श करने का एक तरीका चाहते हैं UITextField
इसे उपभोग करता है और रद्द ईवेंट का उत्पादन करता है।
इसके अलावा, यदि संभव हो तो मैं कोई अतिरिक्त दृश्य बनाने से बचना चाहता हूं।
नहीं, यह निश्चित रूप से काम नहीं करता है। पहली चीज मैंने कोशिश की। "YourDesiredMethod" विधि को कभी नहीं कहा जाता है। मैं UIControlEventTouchDown के लिए ईवेंट प्राप्त कर सकता हूं, लेकिन टचअप ईवेंट में से कोई भी निकाल दिया नहीं गया है। इसके बजाय, एक UIControlEventTouchCancel घटना निकाल दिया गया है। मैं सिर्फ इतना है कि घटना घटना मैं या तो चाहते हैं के लिए एक hacky प्रॉक्सी के रूप में, क्योंकि यह भी निकाल दिया जाता है जब देर तक दबाए रखने आवर्धन पाश को लाता है और जब कुछ और इस तरह के एक मॉडल संवाद या लॉक स्क्रीन के रूप में उपयोगकर्ता इनपुट रद्द उपयोग नहीं कर सकते । – theK42
वाह, मैंने माना कि यह किसी भी अन्य UIView आधारित वर्ग की तरह काम करेगा। आप एक कस्टम UITextField बनाने और स्पर्श को ओवरराइड करने में सक्षम हो सकते हैंगेगन: विधि, उचित मामलों में पहला उत्तरदाता बनने के लिए सुनिश्चित करना ताकि कीबोर्ड अभी भी दिखाया जा सके। –
तो, मैंने छेड़छाड़ की कोशिश की कोशिश की/समाप्त/रद्द कर दिया, और उसने मुझे एक बीजेन/रद्द की गई जोड़ी भी दी, बिना किसी समाप्ति घटना के। यह वास्तव में निराशाजनक है! साथ ही, उन तरीकों को ओवरराइड करने से टेक्स्टफिल्ड को पहले उत्तरदाता बनने से रोका नहीं गया था, इसलिए मौका मिलने से पहले बेस क्लास टच हैंडलिंग कर रही है! – theK42