我有两个UITextField用于纵向和其他用于Lanscape View但我希望编辑第一个也应该反映对其他文本字段的更改。我必须为横向和纵向使用单独的视图。我的最后一个选择是为他们制作两个出口,但我想只使用一个..
任何帮助将不胜感激。
答案 0 :(得分:2)
一种选择是使用IBOutletCollection
。您可以将一个NSArray声明为IBOutletCollection(而不是IBOutlet)。为了知道您从数组中获取的文本字段,您可以在IB中为每个文本字段设置一个标记,只需从数组中提取与特定标记匹配的文本字段。
还有另一种解决方法。在使用nib更改方向(如
)之前,可以存储文本字段中的值NSString *firstText = firstTextField.text;
NSString *secondText = secondTextField.text;
然后在交换笔尖之后使用它来填充新笔尖中的文本字段,如
firstTextField.text = firstText;
secondTextField.text = secondText;
答案 1 :(得分:1)
您可以在UITextFieldDelegate中实现适当的方法.....
如
//not real code here just off the top of my head
(BOOL)textFieldShouldEndEditing:(UITextField *)textField {
NSString* updatedText = [textField text];
firstTextField.text = updatedText;
secondTextField.text = updatedText;
return YES;
}
答案 2 :(得分:0)
你可以使用2个不同的xib文件并做同样的事情 要加载新的xib文件,请使用以下代码 [[NSBundle mainBundle] loadNibNamed:@“tests”owner:self options:nil]; 您仍然可以通过复制它来使用现有的xib文件,并在方向更改时使用上面的代码加载它。 代码中不会有太大的变化,因为你可以在两个方向使用相同的ibout,甚至不需要手动链接它们