mytextField
'da metni düzenlemek için kullanıyorum özel bir klavye var ve harika çalışıyor. Ancak, özel klavyemi kullanarak yürütmek için shouldChangeCharactersInRange
temsilcisini asla alamıyorum. Gerçek klavyemi kullandığımda (mytextField.inputView = numberPad.view ayarlandığından) varsayılan iPhone klavyesi kullanılmadığında yürütülür. Özel klavye kullanılarak shouldChangeCharactersInRange
temsilcisinin ateşlenmesine neden olmak için ne yapmalıyım? BTW, özel klavye sadece bir grup düğme.Özel inputView ile ateş için UITextFieldDelegate.shouldChangeCharactersInRange nasıl alabilirim?
- (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];
}
Sadece önerinizi kullanarak test ettim, ancak hala NumberPadPressed çağrıldığındaChangeCharactersInRange çalışmadı. Sanırım doğru yoldayız ... – docchang
Menzili nasıl hesaplayacağım? Bir TextField'da imleci herhangi bir pozisyonda hareket ettirmenin bir yolu var mı? – docchang
Kod örneğini güncelledim. Seçili aralığı elde etmek için [mytextField selectedRange] öğesini kullanın; bu, seçim yapılmadığında yalnızca bir ekleme noktası olacak veya bir seçim varsa karakter aralığı olacaktır. –