2011-08-11 11 views
17

जब uitextview पहली प्रतिक्रियाकर्ता बन गया तो कैसे संभालें। मेरे पास टेक्स्ट व्यू में टेक्स्ट है और मैं चाहता हूं कि जब दृश्य सक्रिय हो जाए तो टेक्स्ट को साफ़ करना चाहते हैं। मैं उसे कैसे कर सकता हूँ? उस विधि के अंदरकैसे पता चलेगा कि UITextView पहली प्रतिक्रियाकर्ता बन गया है

- (BOOL)textViewShouldBeginEditing:(UITextView *)textView 

बस लौट हाँ और अवरोधन: अग्रिम धन्यवाद

उत्तर

47

में आप निश्चित रूप से की एक UITextViewDelegate विधि का उपयोग कर सकते हैं। तुम भी UITextFieldDelegate और साथ UITextFields के लिए यह कर सकते हैं:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField 

आशा है कि मदद करता है।

+1

यह स्वीकृत उत्तर –

+0

होना चाहिए सहमत है। –

4

पिछला जवाब काम UITextBox के लिए महान है, लेकिन अगर आप NSResponder से ली गई एक कस्टम वर्ग है और जानने की जरूरत यह पहली प्रत्युत्तर हो जाता है जब: जैसा कि ऊपर

-(BOOL) becomeFirstResponder 
{ 
    // Your stuff here 
    return YES; 
} 
1

, आप becomeFirstResponder ओवरराइड लेकिन ध्यान दें कि कर सकते हैं आपको सुपरक्लास कार्यान्वयन को कॉल करना होगा। यदि आप नहीं करते हैं, तो टेक्स्ट फ़ील्ड पर कीबोर्ड पॉपिंग जैसी चीज़ें काम नहीं करेंगी। यानी

override func becomeFirstResponder() -> Bool { 
    if super.becomeFirstResponder() { 
    // set up the control state 
    return true 
    } 

    return false 
} 
0

textViewShouldBeginEditing वास्तव में पाठ दृश्य पहले उत्तरदाता बनने से पहले ट्रिगर करता है।

textViewDidBeginEditing एक बार पाठ दृश्य पहला उत्तरदाता बनने के बाद ट्रिगर करेगा और यह जानने के लिए सबसे अच्छा स्थान होगा कि सक्रिय टेक्स्टव्यू क्या है।

यदि आप वास्तव में चिंतित नहीं हैं कि कौन सा क्षेत्र सक्रिय है और केवल फ़ील्ड को टैप करने के बाद टेक्स्ट को साफ़ करना चाहते हैं तो आप किसी भी फ़ंक्शन का उपयोग कर सकते हैं।

संपादित करें: टेक्स्ट फ़ील्ड के लिए समान विधियां उपलब्ध हैं।

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