मेरे पास एक कस्टम कीबोर्ड है जिसका उपयोग मैं mytextField
में टेक्स्ट को संपादित करने के लिए कर रहा हूं और यह बहुत अच्छा काम करता है। हालांकि, मैं अपने कस्टम कीबोर्ड का उपयोग करके निष्पादित करने के लिए कभी भी shouldChangeCharactersInRange
प्रतिनिधि नहीं प्राप्त कर सकता। जब मैं अपने वास्तविक कीबोर्ड का उपयोग करता हूं (स्पष्ट रूप से डिफ़ॉल्ट आईफ़ोन कीबोर्ड नहीं, तब से यह निष्पादित होता है क्योंकि मैं mytextField.inputView = numberPad.view सेट करता हूं)। कस्टम कीबोर्ड का उपयोग कर shouldChangeCharactersInRange
प्रतिनिधि को आग लगाने के लिए मुझे क्या करना चाहिए? बीटीडब्ल्यू, कस्टम कीबोर्ड सिर्फ बटन का एक गुच्छा है।मैं कस्टम इनपुट के साथ आग लगाने के लिए UITextFieldDelegate.ShouldChangeCharactersInRange कैसे प्राप्त कर सकता हूं?
- (void) numberPadPressed: (UIButton *)sender {
[mytextField insertText:[[NSNumber numberWithInt:sender.tag] stringValue]];
}
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
NSString *resultingString = [textField.text stringByReplacingCharactersInRange: range withString: string];
NSLog(@"shouldChangeCharactersInRange: %@", resultingString);
return true;
}
- (void)viewDidLoad {
mytextField.text = @"";
mytextField.inputView = numberPad.view;
mytextField.delegate = self;
[mytextField becomeFirstResponder];
}
मैंने अभी उपरोक्त आपके सुझाव का उपयोग करके परीक्षण किया है, लेकिन अभी भी चेंज दबाए जाने पर चेंज चेंजर्स इनरेंज को आग नहीं लगनी चाहिए। मुझे लगता है कि हम सही रास्ते पर हैं ... – docchang
मैं सीमा की गणना कैसे करूं? क्या टेक्स्टफिल्ड में किसी विशेष स्थिति पर कर्सर को स्थानांतरित करने का कोई तरीका है? – docchang
मैंने कोड नमूना अद्यतन किया। चयनित श्रेणी प्राप्त करने के लिए [mytextField चयनित रेंज] का उपयोग करें, यदि कोई चयन न हो तो केवल एक प्रविष्टि बिंदु होगा, या चयन होने पर वर्णों की एक श्रृंखला होगी। –