想解决问题直接跳转 三、解决UITextField输入限制受中文自动联想影响的问题
一、前言
关于这次需求:UITextField输入限制看起来是个很简单的需求,然而测试还是能测出很多问题,越来越觉得开发时候的UI简直是一个无底洞,问题并不是很难很复杂,但是他总是会在你不可预期的地方突然冒出来。
一点题外话:做了差不多五个月的iOS开发,很惭愧自己还没有接触到深层次一点的内容,接下来要花大概一到两周完成毕业设计,之后可能要找个感兴趣的点去研究一下才行了。
二、UITextField输入限制的基本实现
有两个地方有类似的输入限制需求
A.只支持数字输入,不支持自动联想,限制5位数,输入数字时同一层级的一个按钮title要同时变化
1.首先会想到使用只有数字键盘的样式,即设置UIKeyboardType
试过一两种,参考了其他样式 https://blog.youkuaiyun.com/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:(0x