一个IBOutlet用于两个UITextField

时间:2011-05-10 09:06:08

标签: iphone objective-c xcode4 uitextfield

我有两个UITextField用于纵向和其他用于Lanscape View但我希望编辑第一个也应该反映对其他文本字段的更改。我必须为横向和纵向使用单独的视图。我的最后一个选择是为他们制作两个出口,但我想只使用一个..
任何帮助将不胜感激。

3 个答案:

答案 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,甚至不需要手动链接它们