2013-02-05 28 views
5

पर सभी उपयोगकर्ता इंटरैक्शन नहीं है मेरे पास एक UITextField है, लेकिन जब मैं ध्यान केंद्रित करता हूं और जब यह फोकस होता है तो मैं नियंत्रण में रहना चाहता हूं।छूएं अक्षम करें लेकिन UITextField

इसे प्राप्त करने के लिए मुझे उस टेक्स्ट फ़ील्ड पर स्पर्श ईवेंट को अवरुद्ध करने में सक्षम होना चाहिए। मुझे पता है कि मैं बस इसके सामने एक बटन डाल सकता हूं और इसे मैन्युअल रूप से कर सकता हूं, लेकिन मैं जानना चाहता था कि तत्व पर स्पर्श को अक्षम करने का कोई तरीका है या नहीं।

बहुत धन्यवाद।

उत्तर

13

UITextField की संपत्ति के साथ स्पर्श को अवरुद्ध करने का एक तरीका प्रतीत नहीं होता है। मैंने स्पर्श को अवरुद्ध करने के लिए टेक्स्ट फ़ील्ड पर UIView डालकर इस समस्या को हल किया। मैंने विशेषता निरीक्षक का उपयोग करके UIView को "रंग साफ़ करें" पर सेट किया है। मेरे आवेदन के लिए बहुत अच्छा काम करता है।

1

userInteractionEnabled संपत्ति के बारे में कैसे?

+1

कि यह भी एक कुंजीपटल, के माध्यम से बताने वाले टेक्स्ट से आप बंद हो जाता है पर सेट किया था जो मैं जरुरत। मैं केवल छूना बंद करना चाहता हूँ। ** ** सभी ** बातचीत नहीं। :) –

+0

मुझे समझ में नहीं आ रहा है ... यदि आप स्पर्श को अक्षम करते हैं, तो उपयोगकर्ता कीबोर्ड को बाहर लाने के लिए इसे स्पर्श करने में सक्षम नहीं होगा, तो क्या अंतर है? – borrrden

+0

लेकिन कीबोर्ड पर लाने के लिए मैं मैन्युअल रूप से 'बनफस्ट रेस्पॉन्डर' को कॉल कर सकता हूं। :) –

0

मैं कर्सर बातचीत becomeFirstResponder से पहले, संपादित करते समय तो() के लिए मैं सेट isUserInteractionEnabled = सच और अंत संपादन पर झूठी

@IBAction func editTapped(_ sender: UIButton) { 
    textField.isUserInteractionEnabled = true 
    textField.becomeFirstResponder() 
} 


func textFieldShouldEndEditing(_ textField: UITextField) -> Bool { 
    print(textField.textValue) 

    textField.isUserInteractionEnabled = false 

    return true 
}