2012-07-03 10 views
15

मुझे नियंत्रण पर ध्यान केंद्रित करने के लिए becomeFirstResponder विधि पता है, लेकिन यह कैसे पता चलेगा कि उस नियंत्रण (UITextView के लिए) वर्तमान में इस पर ध्यान केंद्रित कर रहा है या नहीं?कैसे पता चलेगा कि UITextView का ध्यान केंद्रित है या नहीं

संपादित करें: समस्या यह है कि मैं चाहता हूं कि (उदाहरण के लिए) यूआईटीएक्स्टव्यू के पृष्ठभूमि रंग को फोकस प्राप्त करने के बाद, मुझे कहां से पहले रिस्पॉन्डर कॉल कहां रखना चाहिए? क्या मुझे इस मामले में अधिसूचनाओं का उपयोग करना चाहिए?

अग्रिम धन्यवाद।

+0

अभी जांच नहीं कर सकता है, लेकिन क्या 'isFirstResponder' संपत्ति या कुछ नहीं है? –

+0

यदि नहीं है, तो UITextView उपclass और उस प्रभाव में एक ivar/संपत्ति जोड़ें। फिर ओवरराइड -ब्रीस्ट फर्स्ट रेस्पॉन्डर और ध्वज सेट करें। –

+0

ओह हाँ, इस तरह की संपत्ति पर ध्यान नहीं दिया, हां वास्तव में एक संपत्ति है जिसका नाम है फर्स्ट रेस्पॉन्डर .. आप सवाल का जवाब दे सकते हैं ताकि आपको वोट दिया जा सके। – JAHelia

उत्तर

37
if([txtView isFirstResponder]){ 
    //Has Focus 
} else { 
    //Lost Focus 
} 

यह UITextView के प्रतिनिधि विधि है,

- (BOOL)textViewShouldBeginEditing:(UITextView *)aTextView{ 
    //Has Focus 
    return YES; 
} 

यह ध्यान

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{ 
    if ([text isEqualToString:@"\n"]){ 
     //Lost Focus 
     [textView resignFirstResponder]; 
    } 
    return YES; 
} 
+0

लेकिन समस्या यह है कि जब मैं फोकस प्राप्त करता हूं, तो मैं UITextView के पृष्ठभूमि रंग को बदलने के लिए (उदाहरण के लिए) चाहता हूं, मुझे कहां फर्स्ट रेस्पॉन्डर कॉल कहां रखना चाहिए? – JAHelia

+0

आपकी मदद के लिए बहुत बहुत धन्यवाद – JAHelia

+0

कुछ ऑब्जेक्ट को टेक्स्ट व्यू के प्रतिनिधि के रूप में पंजीकृत करना न भूलें (आम तौर पर टेक्स्ट व्यू के मूल दृश्य वाले व्यू कंट्रोलर) –

3

उपयोग UITextField प्रतिनिधि तरीकों खो दिया है। जब पाठ फ़ील्ड ध्यान केंद्रित हो गया

- (void)textFieldDidBeginEditing:(UITextField *)textField; सक्रिय किए जाएंगे,

(प्रथम प्रत्युत्तर bacame) और जब यह फोकस

खो

- (void)textFieldDidEndEditing:(UITextField *)textField; सक्रिय किए जाएंगे।

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