0

快速提问,我希望,

我有一个UITextFeild我想输入一个数字并将该数字填充到UITextfield同一个 VC 上的 6 个其他 s 中。

第一个 textfiled 被调用percentage goal,而其他的被命名为endmonth1year1percentage, endmonth2year1percentage, endmonth3year1percentage, 等等。

我目前正在使用带有层板的iOS6。

任何帮助表示赞赏。谢谢。

4

3 回答 3

1

检测第一个文本字段的变化:UITextField 文本变化事件

然后更新您要填充的其他文本字段的文本属性。

于 2013-05-28T14:57:42.080 回答
0

试试这样

- (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-28T14:56:59.077 回答
0

因此,首先UITextField您必须设置负责显示文本字段(视图控制器或自定义视图)的类。对于其他UITextFileds,您应该为每个 UITextFiled 设置一个标签,如 1,2,3..(因为您说这会很多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 大量使用的模式,这里有一个教程,将解释delegate.

其次,iOS 提供的一些 UI 控件有一个委托实例(在阅读了上面的教程后,您将了解它为什么以及如何工作)。只有当类实现了委托提供的所需方法时,类才能成为自定义 UI 控件的委托(注意:委托中也有可选方法),如果类没有实现所需的方法,则会发出构建警告显示在设置委托的行。

第三,这个答案中使用的方法是 UITextFiled 的委托方法(检查苹果文档)

我记不清了,[tag][3]这是一个可用于 UIView 子类的所有 UIView 的属性,可用于识别对象,但请注意此属性默认为0,因此请确保在设置标记属性时使用 > 0 的值.

有关更多详细信息,请使用googleApple Docs

于 2013-05-28T15:18:34.873 回答