2012-04-06 12 views
15

मैं आईपैड और आईफोन दोनों के लिए यूआईटीएक्स्टफिल्ड के टैप या क्लिक पर UIAlertView दिखाने की कोशिश कर रहा हूं। मैं एक आईबीएक्शन बनाता हूं और इसे UITextField के टैप डाउन इवेंट के साथ संलग्न करता हूं।UITextField टैप ईवेंट कैसे प्राप्त करें?

लेकिन इसकी नहीं काम कर सही ढंग से, में मामले आईपैड

का काम कर
- (IBAction) TopuchState 
{ 
    //function code 
} 

कृपया मदद मैं ऐसा कर सकता है कैसे मतलब है हमेशा नहीं, iphone के मामले में और नहीं।

enter image description here

+0

टच अप के अंदर में घटना .editingDidBegin के लिए एक विशेष पाठ क्षेत्र के लिए एक लक्ष्य जोड़ें क्या आपने कोशिश की थी? –

+0

यदि आपका टेक्स्टफील्ड स्क्रॉलव्यू के अंदर है तो स्क्रॉल व्यू के लिए संपत्ति का निरीक्षण करने में देरी सामग्री स्पर्श को अनचेक करें। यह तब काम करना चाहिए। – Yawar

उत्तर

21

का प्रयास करते समय एक विशेष पाठ क्षेत्र संपादन शुरू होता है के लिए एक लक्ष्य जोड़ने (UIControlEventEditingDidBegin):

[textField1 addTarget:delegate action:@selector(textField1Active:) forControlEvents:UIControlEventEditingDidBegin]; 
+0

धन्यवाद यह मेरा समय बचाया। – BSKANIA

+0

मैं पदों से बहुत थक गया था कि टेक्स्टफील्ड के बाहर टैप करके कुंजीपटल को कैसे खारिज करना है .... धन्यवाद! (मैंने UIControlEventAllTouchEvents का उपयोग किया) –

2

मुझे लगता है कि यह आसान है कि अगर आप UITextField के लिए प्रतिनिधि की स्थापना की और विधि को लागू:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField 

तो उस विधि के अंदर आप आसानी से बना सकते हैं और अपने UIAlertView दिखा सकते हैं।

UITextFieldDelegate पर एक नज़र डालें।

शुभकामनाएं!

27

आप पहले से ही, UITextField प्रतिनिधि होना इस पद्धति लागू करने के लिए सदस्यता ले ली है के रूप में:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField { 

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Alert" message:@"Alert Message" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Ok", nil]; 
    [alert show]; 

    return YES; 
} 
+0

बिल्कुल सही जवाब। – Sam

+1

मेरे पास दृश्य पर लगभग 8-9 UITextFields हैं और आईपैड नियंत्रण के टैग भी काम नहीं कर रहे हैं यदि आप मेल खाते हैं कि यूआईटीएक्स्टफिल्ड्स की घटना में आग लग गई है। – Azhar

0

कनेक्ट TextField प्रतिनिधि के साथ और अब इस समारोह को बुलाओ !!

-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField {  
    [email protected]" "; 
    return YES; 
} 
0

स्विफ्ट 3

में viewDidLoad विधि

self.textField.addTarget(self, action: #selector(textFieldTouched(_:)), for: UIControlEvents.editingDidBegin) 

func textFieldTouched(textField: UITextField) { 
//Show AlertView 
}