如何限制textField
字符串的前缀。如何限制iOS中的前缀文本字符串?
我希望textfield具有默认前缀字符串(AAAA-)的效果。 (后AAAA-用户添加字符串)
而且用户无法删除这些字符串,用户可以添加追加字符串到textField
。
我该如何使用下面的委托方法实现效果?
-(BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
}
我不想自定义模式视图来实现这些效果。
有一些textfield方法可以实现吗?
谢谢
---详细讲解问题---
我使用UIAlertAction添加文本字段中AlertAction象下面这样:
在界面上,我宣布
NSString *_prefixString;
在viewdidload中设置初始值
_prefixString = @"AAAA-";
我已经在头文件中设置了UITextFieldDelegate。
然后alertviewcontroller设置如下:
UIAlertController *changeDeviceNameDialog =[UIAlertController
alertControllerWithTitle:NSLocalizedString(@"change_device_name",nil) message:nil preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *cancelChangeDevNameAc = [UIAlertAction actionWithTitle:NSLocalizedString(@"cancel",nil) style:UIAlertActionStyleDefault handler:nil];
UIAlertAction *enterChangeDevNameAc = [UIAlertAction actionWithTitle:NSLocalizedString(@"enter",nil) style:UIAlertActionStyleDefault handler:^(UIAlertAction *action){
UITextField *newDeviceNameTF = changeDeviceNameDialog.textFields[0];
}];
[changeDeviceNameDialog addAction:cancelChangeDevNameAc];
[changeDeviceNameDialog addAction:enterChangeDevNameAc];
[changeDeviceNameDialog addTextFieldWithConfigurationHandler:^(UITextField *textField){
textField.delegate = self;
textField.placeholder = NSLocalizedString(@"new_device_name", nil);
textField.text = _prefixString;
}];
[self presentViewController:changeDeviceNameDialog animated:YES completion:nil];
// below refer the replay
-(BOOL) textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
if ([textField.text isEqualToString:_prefixString] && range.location == _prefixString.length - 1 && range.length == 1) {
return NO;
}
return YES;
}
我想要的效果是当警报弹出框,文本字段具有默认的文本AAAA-,且用户无法清除AAAA-文本。
用户只需输入其他文字追加AAAA-。
但代表如上,我仍然可以删除前缀文本。
[将文本添加到不能删除的UITextField](http:// stackoverflow。com/questions/16103453/adding-text-to-uitextfield-you-can-delete) – Mika