Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 如何使文本字段更改显示在两个不同的视图中?_Objective C_Cocoa Touch_Interface Builder_Uitextfield - Fatal编程技术网

Objective c 如何使文本字段更改显示在两个不同的视图中?

Objective c 如何使文本字段更改显示在两个不同的视图中?,objective-c,cocoa-touch,interface-builder,uitextfield,Objective C,Cocoa Touch,Interface Builder,Uitextfield,我在一个类中使用了textfield委托方法shouldChangeCharactersRange。如果用户在一个视图中的文本字段中键入内容,我希望这些更改显示在另一个视图中的文本字段中。 现在,我有两个具有相同文件所有者的xib文件,我在每个xib文件的IB中连接到我声明为IBOutlet的textfield。这是一款Ipad应用程序,所以当用户旋转设备时,我会在不同的视图之间切换。 它还没起作用,所以我一定错过了什么?有人能帮帮我吗!非常感谢。 如果这个问题不清楚,请告诉我。无论在哪里实现您

我在一个类中使用了textfield委托方法shouldChangeCharactersRange。如果用户在一个视图中的文本字段中键入内容,我希望这些更改显示在另一个视图中的文本字段中。 现在,我有两个具有相同文件所有者的xib文件,我在每个xib文件的IB中连接到我声明为IBOutlet的textfield。这是一款Ipad应用程序,所以当用户旋转设备时,我会在不同的视图之间切换。 它还没起作用,所以我一定错过了什么?有人能帮帮我吗!非常感谢。
如果这个问题不清楚,请告诉我。

无论在哪里实现您的shouldchangeCharactersRange:方法,如果您对这两个文本字段都有引用,您可以做的是设置这两个字段的文本。那么现在你有了这样的东西:

- (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;
    }
}
您希望添加以下内容:

- (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;
    }
}

如果您将两个文本字段都设置为委托给单个函数,您甚至不需要关心委托给您的是谁。无论是谁输入了文本,您要执行的操作都是相同的。

您应该编辑您的问题,并在shouldChangeCharactersRange方法中添加您的内容。这样我们就可以看到你在说什么。我明白你的意思,但我不认为用这种方法会发生什么事很重要,我只想在我的另一个文本字段中发生同样的事情。你知道他们说一张图片抵得上千言万语吗?我只有一个textfield名称,因为在我的两个xib文件中,我的两个textfield都连接到相同的名称,并且具有相同的委托和标记。没关系,即使它们具有相同的名称,您仍然有两个单独的对象。它们被实例化是因为它们位于分离的XIB中。他们叫什么并不重要。重要的是,您可以将他们每个人的引用返回给他们的代表。