快速提问,我希望,
我有一个UITextFeild,我想输入一个数字,并将该数字填充到同一VC上的其他6个UITextfield中。
第一个文本字段名为percentage goal,其他文本字段名为endmonth1year1percentage、endmonth2year1percentage、endmonth3year1percentage等。
我目前使用的是带有楼层的iOS6。
任何帮助都是非常感谢的。谢谢。
发布于 2013-05-28 22:57:42
检测第一个文本字段中的更改:UITextField text change event
然后更新要填充的其他文本字段的text属性。
发布于 2013-05-28 22:56:59
试着这样做,
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
//replace your textfield names here
textField1.text=textField.text;
textField2.text=textField.text;
textField3.text=textField.text;
textField4.text=textField.text;
textField5.text=textField.text;
return YES;
}发布于 2013-05-28 23:18:35
因此,对于第一个UITextField,您必须将委托设置为负责文本字段(视图控制器或自定义视图)显示的类。对于其他的UITextFiled,您应该设置一个类似于1,2,3..for each UITextFiled的标记(因为您说这将是大量的UITextFields)
在为第一个UITextField设置委托并设置标签之后,您可以实现两个不同的委托方法(取决于您想要的方法)。
Sunny提供的方法是针对即时更改的:
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{
for(int i = firstTextViewTag; i<=lastTextViewTag; i++) {
UITextView *newTextView = (UITextView *)[self.view viewWithTag:i];
//or [yourCustomView viewWithTag:i]
newTextView.text = textField.text;
}
return YES;
}其次,如果您希望仅在用户完成键入并隐藏键盘后才更新文本字段,则可以使用以下命令:
-(void)textFieldDidEndEditing:(UITextField *)textField {
for(int i = firstTextViewTag; i<=lastTextViewTag; i++) {
UITextView *newTextView = (UITextView *)[self.view viewWithTag:i];
//or [yourCustomView viewWithTag:i]
newTextView.text = textField.text;
}
}编辑
首先,delegate是iOS大量使用的模式,这里是一个tutorial,它将解释delegate的基本概念。
其次,iOS提供的一些UI控件有一个委托实例(在阅读上面的教程之后,您将了解它为什么以及如何工作)。只有当类实现委托提供的必需方法时,类才能成为自定义UI控件的委托(注意:委托中也有可选方法),如果类没有实现必需的方法,则在设置委托的行将显示构建警告。
第三,此答案中使用的方法是UITextFiled (check apple docs)的委托方法
我记错了,[tag][3]是一个可用于UIView的子类的所有UIViews的属性,可用于标识对象,但请注意,此属性默认情况下为,因此请确保在设置tag属性时使用> 0的值。
有关更多详细信息,请使用google和Apple Docs
https://stackoverflow.com/questions/16795066
复制相似问题