【问题标题】:UISwitch resets TextField value after on/offUISwitch 在开/关后重置 TextField 值
【发布时间】:2015-07-31 08:14:48
【问题描述】:

我创造了

- (IBAction)passwordSwitchPressed:(id)sender {
    if (self.passwordSwitch.isOn) {
        self.passwordTextField.secureTextEntry = YES;

    }
    else {
        self.passwordTextField.secureTextEntry = NO;
    }
}


条件是,如果开关打开,密码文本字段安全输入打开,否则关闭。一切都很完美,但是如果我从开到关,然后再回到开,密码文本字段中的值就会消失。如何解决?

【问题讨论】:

  • 请提供更多代码。
  • 嗨,我已经为 IBAction 添加了完整代码...
  • 在其他地方一定有另一个原因 - 可能在更改后调用的委托方法中。 passwordSwitchPressed 方法按预期工作。
  • 嗯,我会检查,但我认为这是 iOS 的系统选项,也许有一些方法可以在切换状态更改时保持从文本字段中输入...

标签: ios objective-c cocoa-touch uiswitch


【解决方案1】:

将委托设置为文本字段后。试试下面的方法。希望它会起作用。

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

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

    textField.text = oldString;

    return NO;
}

【讨论】:

    【解决方案2】:

    尝试保持对输入的引用,让我知道 :)

    - (IBAction)passwordSwitchPressed:(id)sender 
    {
        NSString * passValue = self.passwordTextField.text;
    
        self.passwordTextField.secureTextEntry = self.passwordSwitch.isOn;
        self.passwordTextField.text = passValue;
    }
    

    【讨论】:

    • 所以你的问题出在其他地方,就像刚才提到的瓦里安一样。必须有另一个功能可以重置您的输入..
    • 我将在空应用程序中尝试这种情况,我将有一个文本字段和切换,没有其他任何东西,如果出现此问题,我会通知您。
    猜你喜欢
    • 2016-08-24
    • 1970-01-01
    • 1970-01-01
    • 2021-10-27
    • 2018-09-28
    • 1970-01-01
    • 2018-10-01
    • 1970-01-01
    相关资源
    最近更新 更多