我希望在UITextField
中结束编辑后添加一些字符串。
示例:
textfield 1:用户输入1000。在关注textfield2之后,我想在textfield1中添加“miles”。 => textfield1:1000英里
如果用户再次关注textfield1,它只显示1000个用户编辑,没有“里程”。
我尝试过但不起作用
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *) event
{
UITouch *touch = [[event allTouches] anyObject];
if ([textfield1 isFirstResponder] && (textfield1 != touch.view))
{
textfield1.text = [NSString stringWithFormat:@"miles"];
}
if ([textfield2 isFirstResponder] && (textfield2 != touch.view))
{
....
}
}
答案 0 :(得分:4)
您可以使用UITextField的委托方法来执行此操作
- (void)textFieldDidBeginEditing:(UITextField *)textField;
和
- (void)textFieldDidEndEditing:(UITextField *)textField;
哈德
答案 1 :(得分:2)
请试试这个,
- (void)textFieldShouldBeginEditing:(UITextField *)textField
{
textField.text=@"";
}
- (void)textFieldDidEndEditing:(UITextField *)textField
{
textfield1.text = [NSString stringWithFormat:@"%@ miles",textField.text];
}
此处textFieldDidEndEditing
是textField的委托方法。你需要设置textfield1.delegate=self
。
希望这段代码可以帮到你。
答案 2 :(得分:1)
试试这个: -
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
if(textField.tag==10) // textfield 1
{
if(![ _txt1.text rangeOfString:@"miles"].location!= NSNotFound)
{
_txt1.text = [_txt1.text stringByAppendingString:@"miles"];
}
}
else if (textField.tag == 20) // textfield 2
{
if([ _txt1.text rangeOfString:@"miles"].location!= NSNotFound)
{
_txt1.text = [_txtUser1.text stringByReplacingOccurrencesOfString:@"miles" withString:@""];
}
}
}
注意: - 将标记设置为文本字段为10& 20. _txt1
是您的textfield1(UITextfield
)
答案 3 :(得分:1)
将text
全局变量设为NSString
,然后
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
if(text.length>0)
{
self.textField.text =text;
}
}
- (void)textFieldDidEndEditing:(UITextField *)textField
{
text =self.txtField.text;
self.txtField.text = [NSString stringWithFormat:@"%@ miles", text];
}
答案 4 :(得分:0)
设置文本字段的代理,如下所示
@interface YourController : UIViewController <UITextFeildDelegate>
然后使用以下方法检查
-(void)textFieldDidEndEditing:(UITextField *)textField{
if(textField....) //condition to check textfeild is
{
//do your stuff
}
}
希望这有帮助
答案 5 :(得分:0)
像这样设置textField1的标签
self.textField1.tag = 100;
在viewDidLoad到你的textField出口,然后
-(void)textFieldDidEndEditing:(UITextField *)textField
{
if (textField.tag == 100)
{
self.txtUserId.text = [NSString stringWithFormat:@"%@ miles", self.txtUserId.text];
}
}
因为这是一个委托方法,所以它将为每个textField结束编辑事件触发,这就是你必须检查标签号的原因。并且不要忘记设置代理
@interface YourController : UIViewController <UITextFeildDelegate>