星空网 > 软件开发 > 操作系统

限制UITextField输入内容的长度

一、前言

  今天做手机号输入限制长度,例如我的textfield只能输入11位,如果再多输入的话就不再textfield中显示,只显示11位的手机号。

  如果用ReactiveCocoa的话,这个很好解决。但是项目中没有引入该类库,所以只能手动的取完成了。

二、实现原理

  先看代码:

//// ViewController.m// Test//// Created by zhanggui on 15/12/28.// Copyright © 2015年 zhanggui. All rights reserved.//#import "ViewController.h"@interface ViewController ()@property (weak, nonatomic) IBOutlet UITextField *myTextField;@end@implementation ViewController- (void)viewDidLoad {  [super viewDidLoad];  [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textFiledEditChanged:) name:@"UITextFieldTextDidChangeNotification" object:self.myTextField];  self.myTextField.placeholder = @"只能输入11位哦";  // Do any additional setup after loading the view, typically from a nib.}#pragma mark - UITextFieldDelegate-(void)textFiledEditChanged:(NSNotification *)obj{  UITextField *textField = (UITextField *)obj.object;    NSString *toBeString = textField.text;  if (toBeString.length-1 > 10 && toBeString.length>1) {    textField.text = [toBeString substringToIndex:11];  }}@end

   做法如下:

  首先,我们需要添加一个通知,这个通知的name是:UITextFieldTextDidChangeNotification 。我们可以点击这个名字进去,会发现

UIKIT_EXTERN NSString *const UITextFieldTextDidChangeNotification;

  这个是在UITextField.h中定义的一个常量字符串,他的作用如下:

    通知观察者textField中的内容改变了,受影响的textField就存储在通知的object参数中。(Notifies observers that the text in a text field changed. The affected text field is stored in the object parameter of the notification.)

  这样的话,我们就可以通过通知来控制了。当我们每次输入字符到textField中的时候,都会在通知的方法中进行监听,我就在里面判断输入的字符串的长度是否满足需要的条件,如果满足了条件(我这里的条件是11位),就让textField的text始终等于我要限制的长度。以此来完成自己的需求。

 




原标题:限制UITextField输入内容的长度

关键词:ie

ie
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

要寄国外的快递怎么寄:https://www.goluckyvip.com/tag/102373.html
大连泛成国际货运有限公司:https://www.goluckyvip.com/tag/102374.html
发国外的快递有哪些怎么收费的:https://www.goluckyvip.com/tag/102375.html
代购的国外物流信息是真的吗:https://www.goluckyvip.com/tag/102376.html
国际件用什么快递便宜:https://www.goluckyvip.com/tag/102377.html
寄快递国际件:https://www.goluckyvip.com/tag/102378.html
TikTok斥资210万美元游说美国参议院阻止法案通过 :https://www.kjdsnews.com/a/1836653.html
TikTok斥资210万美元游说美国参议院阻止法案通过 :https://www.goluckyvip.com/news/188220.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流