如何使文本域更改出现在两个不同的视图中?

时间:2011-04-05 19:25:12

标签: objective-c cocoa-touch interface-builder uitextfield

我有一个类,我使用了textfield委托方法“shouldChangeCharactersInRange”。如果用户在一个视图中的文本字段中键入内容,我希望这些更改显示在不同视图的文本字段中。 我现在,我有两个xib文件与同一个文件的所有者,我在每个xib文件中建立一个连接(在IB中)到我的文本字段(我声明为IBOutlet)。它是一个Ipad应用程序,所以当用户旋转设备时我在视图之间切换。 它还没有用,所以我一定错过了什么?请有人帮帮我!谢谢! 如果这个问题不明确,请告诉我。

1 个答案:

答案 0 :(得分:0)

如果你实现了shouldChangeCharactersInRange:方法,如果你有两个文本字段的引用,你可以做的是设置两者的文本。所以现在你有类似的东西:

- (BOOL)textField: (UITextField *)textField shouldChangeCharactersInRange: (NSRange)range replacementString: (NSString *)string
{
    if (textField.text.length >= MAX_LENGTH && range.length == 0)
    {
        return NO; 
    }
    else
    {
        return YES;
    }
}

您想添加以下内容:

- (BOOL)textField: (UITextField *)textField shouldChangeCharactersInRange: (NSRange)range replacementString: (NSString *)string
{
    if (textField.text.length >= MAX_LENGTH && range.length == 0)
    {
        return NO; 
    }
    else
    {   
        [myFirstTextField setText:string];
        [mySecondTextField setText:string];
        return YES;
    }
}

如果您将两个textFields设置为委托给该单个函数,那么您甚至不需要关心那些委派给您的人。无论是谁输入文字,你想要采取的行动都是一样的。