iOS:textfield切换显隐时发生的问…

本文详细介绍了在iOS开发过程中遇到的输入法切换导致内容错位与清空的问题,并提供了两个解决方案:一是在切换内容后重新定位光标位置;二是实现UITextField代理方法,避免输入内容被清空。通过实践这些建议,开发者可以有效解决iOS应用中常见的输入法切换问题。
问题1:切换显隐时,光标会错位的问题
解决办法1:
NSString *string = self.passwordTextField.text;     //切换内容后  可以从新定位光标位置

        self.passwordTextField.text = @"";

    self.passwordTextField.text = string;

解决办法2:

textField.enabled = NO;       //切换内容后  可以从新定位光标位置  效果同上

    textField.secureTextEntry = YES;

    textField.enabled = YES;

    [textField becomeFirstResponder];


问题2:切换显隐时,继续输入会将之前的内容清空

解决办法:

#pragma mark ---textField代理方法---

//textfield从新赋值   没有此代理方法   则切换显隐后  内容会被清空

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

{

    if ([string isEqualToString:@" "]) { //不能输入空格

        return NO;

    }

//如果是删除键  并且内容长度大于0

    if ([string isEqualToString:@""] && self.passwordTextField.text.length>0) {

        NSString *stringtemp = [self.passwordTextField.text substringToIndex:self.passwordTextField.text.length-1];

        self.passwordTextField.text = stringtemp;

        return NO;

    }

    NSString *stringTemp = [NSString stringWithFormat:@"%@%@",textField.text,string];

    self.passwordTextField.text = stringTemp;

 

    return NO;

 

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值