Во-первых, реализовать UITextFieldDelegate
в вашем .h
@interface ViewController : UIViewController <UITextFieldDelegate>
Далее, установите делегируют UITextField
«s вашему ViewController
. Затем используйте textFieldShouldBeginEditing
, чтобы добавить «$», когда текстовое поле становится первым ответчиком.
@property (strong, nonatomic) IBOutlet UITextField *dollarTextField;
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
// if editing the dollarTextField, then insert the $
if (textField == _dollarTextField) {
// if the textField is blank, then add the $
if (textField.text.length == 0) {
textField.text = @"$";
}
}
return YES;
}
Наконец, реализовать shouldChangeCharactersInRange
держать $ в textField
.
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
// if editing the dollarTextField
if (_dollarTextField) {
// set what the new string will be
NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string];
textField.text = newString;
// if the new string is blank, then set it to the $
if (newString.length == 0) {
textField.text = @"$";
}
return NO;
}
return YES;
}
Вы можете использовать изображение символа $ и назначить его UITextField.leftView – Jonathan
@ Джонатан: Да :). Это одно решение или хорошее решение, для использования leftView, но не для изображения, нужно будет использовать UILabel вместо этого ... ryt? –
А, да. Это UIView, поэтому вы можете присвоить ему UILabel. Хорошее мышление ... Кроме того, скорее всего, вы можете просто скрыть левый экран, когда textView DidEndEditing и показать его, когда TextView DidBeginEditing. – Jonathan