Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/113.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
Ios “正在连接UITextfield”;清晰的;UILabel的默认按钮_Ios_Uitextfield_Uilabel - Fatal编程技术网

Ios “正在连接UITextfield”;清晰的;UILabel的默认按钮

Ios “正在连接UITextfield”;清晰的;UILabel的默认按钮,ios,uitextfield,uilabel,Ios,Uitextfield,Uilabel,新手德夫在这里。抱歉,这可能是一个愚蠢的问题,但是有没有办法将UITextfield对象可以启用的圆形“x”按钮连接到UILabel对象,这样当用户按下textfield中的“清除”按钮时,标签也会清除 我使用的是只有一个视图控制器的单视图应用程序 谢谢只要按下UITextField的清除按钮,就会调用UITextFieldDelegate方法。在该方法中,您可以执行任何喜欢的代码,例如更改UILabel的文本每当按下UITextField的clear按钮时,都会调用UITextFieldDel

新手德夫在这里。抱歉,这可能是一个愚蠢的问题,但是有没有办法将UITextfield对象可以启用的圆形“x”按钮连接到UILabel对象,这样当用户按下textfield中的“清除”按钮时,标签也会清除

我使用的是只有一个视图控制器的单视图应用程序


谢谢

只要按下UITextField的清除按钮,就会调用UITextFieldDelegate方法。在该方法中,您可以执行任何喜欢的代码,例如更改UILabel的
文本

每当按下UITextField的clear按钮时,都会调用UITextFieldDelegate方法。在该方法中,您可以执行任何您喜欢的代码,例如更改UILabel的
文本

John Sauer的答案很好

但是如果您想更改标签,即使用户删除了文本,也不要使用“清除”按钮

你应该使用

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{

    NSString *newString = [textField.text stringByReplacingCharactersInRange:range
                                                                  withString:string];

    if ( newString.length == 0 )
    {
        //update label
    }


    return YES;
}

约翰·索尔的回答很好

但是如果您想更改标签,即使用户删除了文本,也不要使用“清除”按钮

你应该使用

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{

    NSString *newString = [textField.text stringByReplacingCharactersInRange:range
                                                                  withString:string];

    if ( newString.length == 0 )
    {
        //update label
    }


    return YES;
}