【iOS】解决UITextField输入限制受中文自动联想影响的问题

想解决问题直接跳转 三、解决UITextField输入限制受中文自动联想影响的问题


一、前言

关于这次需求:UITextField输入限制看起来是个很简单的需求,然而测试还是能测出很多问题,越来越觉得开发时候的UI简直是一个无底洞,问题并不是很难很复杂,但是他总是会在你不可预期的地方突然冒出来。

一点题外话:做了差不多五个月的iOS开发,很惭愧自己还没有接触到深层次一点的内容,接下来要花大概一到两周完成毕业设计,之后可能要找个感兴趣的点去研究一下才行了。


二、UITextField输入限制的基本实现

有两个地方有类似的输入限制需求

A.只支持数字输入,不支持自动联想,限制5位数,输入数字时同一层级的一个按钮title要同时变化

1.首先会想到使用只有数字键盘的样式,即设置UIKeyboardType

试过一两种,参考了其他样式 https://blog.csdn.net/shihuboke/article/details/77430358

发现数字键盘没有带确认/Return/Done健的样式,遂弃用。

最后初始化设置:

//customBtn是TextField的背景按钮,实现点选的效果
self.cmoneyTextField = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, customBtn.frame.size.width, customBtn.frame.size.height)];
self.cmoneyTextField.backgroundColor = [UIColor clearColor];
self.cmoneyTextField.font = [UIFont systemFontOfSize:13.f];
self.cmoneyTextField.textColor = [UIColor colorWithRed:(0x66/255.0) green:(0x66/255.0) blue:(0x66/255.0) alpha:1];
self.cmoneyTextField.textAlignment = NSTextAlignmentCenter;
self.cmoneyTextField.keyboardType = UIKeyboardTypeNumbersAndPunctuation;
self.cmoneyTextField.placeholder = @"其他";
[self.cmoneyTextField setValue:[UIColor colorWithRed:(0x66/255.0) green:(0x66/255.0) blue:(0x66/255.0) alpha:1] forKeyPath:@"_placeho
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值