mytextField
의 텍스트를 편집하는 데 사용하는 사용자 지정 키보드가 있는데 잘 작동합니다. 그러나 shouldChangeCharactersInRange
대리자는 내 사용자 지정 키보드를 사용하여 실행할 수 없습니다. 실제 키보드 (mytextField.inputView = numberPad.view를 설정했기 때문에 분명히 기본 iPhone 키보드가 아님)를 사용할 때 실행됩니다. 사용자 지정 키보드를 사용하여 shouldChangeCharactersInRange
대리인이 실행되도록하려면 어떻게해야합니까? BTW, 사용자 정의 키보드는 버튼의 무리입니다.사용자 정의 inputView를 사용하여 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];
}
위 제안에 따라 테스트했지만 numberPadPressed가 호출 될 때 shouldChangeCharactersInRange가 실행되지 않았습니다. 나는 우리가 올바른 길에 있다고 생각합니다 ... – docchang
어떻게 범위를 계산합니까? TextField의 특정 위치에서 커서를 움직이는 방법이 있습니까? – docchang
코드 샘플을 업데이트했습니다. [mytextField selectedRange]를 사용하여 선택한 범위를 가져옵니다. 선택 영역이 없으면 삽입 점이 될 것이고 선택 영역이 있으면 범위가 될 것입니다. –