2011-03-04 6 views
9

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

उत्तर

24
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
{ 
    if (range.length > 0) 
    { 
     // We're deleting 
    } 
    else 
    { 
     // We're adding 
    } 
} 
+0

इससे यह बहुत आसान हो जाता है। धन्यवाद! – serge2487

+0

अच्छा विचार है, लेकिन मुझे हटाने के बाद वर्णों की संख्या नहीं मिल सका, इसलिए मैं @ इशु उत्तर में कूद गया, धन्यवाद किसी भी तरह – Husam

5

तर्क: विलोपन आप एक स्ट्रिंग प्रत्येक अक्षर के बाद टाइप तो आप प्रत्येक परिवर्तन पर जांच कर सकते हैं स्ट्रिंग buid स्ट्रिंग के उप स्ट्रिंग है का निर्माण करने की जरूरत है खोजने के लिए तो यह उपयोगकर्ता अंतिम अक्षर और अगर हटाना इसका मतलब निर्माण स्ट्रिंग टेक्स्ट फ़ील्ड टेक्स्ट की उप स्ट्रिंग है तो उपयोगकर्ता एक अक्षर जोड़ता है।

आप प्रतिनिधि विधि है जो आप इस तर्क के साथ प्रयोग कर रहे हैं का उपयोग कर सकते हैं या आप अधिसूचना

उपयोग कर सकते हैं आप

viewDidLoad

NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter]; 

    [notificationCenter addObserver:self 
          selector:@selector (handle_TextFieldTextChanged:) 
           name:UITextFieldTextDidChangeNotification 
          object:yourTextField]; 
में इन पंक्तियों को जोड़ने के परिवर्तन के किसी भी प्रकार को खोजने के लिए इस अधिसूचना का उपयोग कर सकते

और इस कार्य करना

- (void) handle_TextFieldTextChanged:(id)notification { 

    //you can implement logic here. 
    if([yourTextField.text isEqulatToString:@""]) 
    { 
     //your code 
    } 

} 
1
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { 
    NSUInteger newLength = [textField.text length] + [string length] - range.length; 
    if (newLength > [textField.text length]) 
     // Characters added 
    else 
     // Characters deleted 
    return YES; 
} 
संबंधित मुद्दे

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