2012-06-25 19 views
6

मुझे लगता है कि यह अजीब है, मैं अपने ही वर्ग है कि UIAlertView से विरासत बना दिया है। इस वर्ग में मैं subview के रूप में एक UITableView जोड़ सकते हैं और कोशिकाओं एक UILabel और एक UITextField में शामिल है।UITextField: पाठ लेकिन smilies, कॉपी/पेस्ट टाइप नहीं कर सकते, और बैकस्पेस ठीक

वर्ग औजार: UITableViewDelegate, UITableViewDataSource और UITextFieldDelegate,

cellForRowAtIndexPath प्रत्येक cell.uiTxtField.delegate आत्म करने के लिए सेट कर दिया जाता है।

निम्नलिखित दोनों सिम्युलेटर और असली iPhone डिवाइस पर होता है:

  • जब मैं सूचक/उंगली UITextField में कीबोर्ड पॉप अप और textFieldDidBeginEditing शुरू हो रहा है निर्धारित करते हैं, यह ठीक है और जैसा सोचा था।

  • जब मैं UITextField छोड़ देते हैं, textFieldDidEndEditing शुरू हो रहा है, भी ठीक है और अपेक्षा के अनुरूप है।

  • लेकिन जब मैं पाठ लिखना प्रारंभ करते हैं, कर्सर निमिष लेकिन कोई पाठ UITextField के लिए लिखा गया बंद हो जाता है।

  • मैं नकल कर सकते हैं और एक UITextField में सूचक/उंगली है कि पाठ का चयन करें, प्रतिलिपि शामिल दबाए रखते हुए और फिर एक और UITextField (या समान) में पेस्ट से पाठ पेस्ट करें।

  • बैकस्पेस ठीक काम करता है।

  • यह भी मुझे प्रतीकों और smilies आदि में टाइप करते हैं

  • केवल एक चीज मैं में टाइप नहीं कर सकते वर्ण/अक्षर और अंक

  • वापसी बटन नहीं है ट्रिगर textFieldShouldReturn

के बाद से textFieldDi dBeginEditing और textFieldDidEndEditing शुरू हो रहा है मुझे लगता है मेरी प्रतिनिधि सेटअप ठीक है, लेकिन मैं नहीं समझ सकता कारण है कि मैं पाठ टाइप नहीं कर सकते हैं और यही कारण है textFieldShouldReturn ट्रिगर नहीं कर रहा है।

This संबंधित हो सकती है।

किसी भी मदद की सराहना की है।

+0

मुझे एक ही समस्या है .. कोई भी समाधान जानता है कृपया इसकी मदद करें – Anju

उत्तर

0

आप अपने कस्टम वर्ग के "init" विधि में इस डाल दिया है?

अपने कार्यान्वयन फ़ाइल में इस तरह एक कोड डालने की कोशिश ...

@implementation CustomAlertClass <UITextFieldDelegate> 

- (id)initWithFrame:(CGRect)frame 
{ 
    self = [super initWithFrame:frame]; 
    if (self) { 
    // 
    self.YourTextField.delegate = self; 
} 
return self; 
} 

@end 
0

लघु जवाब: सुनिश्चित करें कि आप किसी भी कोड है कि UITextField पर 'संपादन' संपत्ति के साथ छेड़छाड़ न न करना पड़े।

मैं एक ही लक्षण है जहाँ मैं निश्चित रूप से प्रतिनिधि ठीक से स्थापित करने और textFieldDidBeginEditing और textFieldDidEndEditing कहा जाता हो रहे थे, लेकिन textFieldShouldReturn और shouldChangeCharactersInRange नहीं बुलाया हो रहे थे था। मैं भी कोई अक्षर टाइप नहीं कर सका, लेकिन मैं पेस्ट को टेक्स्ट फ़ील्ड में कॉपी कर सकता था। मेरे मामले में मैं भी UITableView में कक्षों के अंदर टेक्स्ट फ़ील्ड डाल रहा था। मेरी स्थिति थोड़ा अलग थी कि डिलीट बटन काम नहीं करता था।

कहाँ मैं गलत हो गया था, कि मैं अपने कोशिकाओं में एक कच्चे UITextField का उपयोग नहीं कर रहा था, मैं UITextField के अपने खुद के उपवर्ग था। मेरे सबक्लास में एक संपत्ति 'एडिटिंग' थी, जिसे मैं UITextFieldDelegate विधियों में संशोधित कर रहा था और टेक्स्ट फ़ील्ड का चयन करते समय तालिका दृश्य को स्क्रॉल करने का तरीका जानने के लिए उपयोग किया जाता था। यह UITextField पर 'isEditing' विधि को ओवरराइड कर रहा था जिसका उपयोग UITextField 'संपादन' संपत्ति के लिए गेटर के रूप में किया जाता है। एक बार जब मैं अपने सबक्लास से छुटकारा पाता हूं तो संपत्ति के अनुसार सबकुछ अपेक्षित व्यवहार करता है।