如何更好的限制一个UITextField/UITextView的输入字数

简介: 要限制一个UITextField/UITextView的输入字数,首先想到的应该是通过UITextFieldDelegate/UITextViewDelegate的代理方法来限制,那么如何来更好的限制输入字数呢,下面我们来看看:

要限制一个UITextField/UITextView的输入字数,首先想到的应该是通过


UITextFieldDelegate/UITextViewDelegate


的代理方法来限制,那么如何来更好的限制输入字数呢,下面我们来看看:


TextView。幸运的是,当我们点进去UITextView.h头文件里时,会发现- (void)textViewDidChange:(UITextView *)textView;这个代理方法,我们只需要在这个方法里实现字数限制就好


- (void)textViewDidChange:(UITextField *)textView
    {
        if (textView == self.textView) {
            if (textView.text.length > 20) {
                textView.text = [textView.text substringToIndex:20];
            }
        }
    }


TextField。Textfield就没有那么幸运了,当我们点进去UITextField.h头文件的时候,怎么也找不到- (void)textFieldDidChange:(UITextField *)textField方法,就在我们寻觅上述回调方法而不得时,可能会发现最下面有这么个消息通知名称:


UIKIT_EXTERN NSString *const UITextFieldTextDidChangeNotification;


不过,监听消息还要记得解除监听,通常我还习惯把监听消息的代码统一放在一个方法

中,看起来有点“大动干戈”。

所幸的是UITextField本身提供了相应的事件监听:


[textField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];


这样就可以更好地限制输入长度:


- (void)textFieldDidChange:(UITextField *)textField
    {
        if (textField == self.titleField) {
            if (textField.text.length > 20) {
                textField.text = [textField.text substringToIndex:20];
            }
        }
    }



相关文章
|
测试技术 Swift
Swift:UILabel超出宽度文字的截取
Swift:UILabel超出宽度文字的截取
502 0
Swift:UILabel超出宽度文字的截取
iOS-UITextView设置行间距,内容颜色(变相设置类似UITextField的placeholder)
iOS-UITextView设置行间距,内容颜色(变相设置类似UITextField的placeholder)
388 0
iOS-UITextView设置行间距,内容颜色(变相设置类似UITextField的placeholder)
|
Android开发
关于Android自定义View实现验证码输入框
在做校验验证的时候,经常需要手机接收短信,获取验证码,输入验证码,实现起来其实也不难,今天对输入框简单做了一个封装,通过自定义View来实现。
238 1
关于Android自定义View实现验证码输入框
|
iOS开发
iOS开发 - UITableView的tableHeaderView注意事项(遮挡cell,内容重复等等)
iOS开发 - UITableView的tableHeaderView注意事项(遮挡cell,内容重复等等)
389 0
三种方法设置UITextField的占位文字颜色
三种方法设置UITextField的占位文字颜色
268 0
|
Swift
Swift: UITextView&UITextField 限制字数和输入内容
Swift: UITextView&UITextField 限制字数和输入内容
1390 0
Swift: UITextView&UITextField 限制字数和输入内容
|
数据安全/隐私保护
UITextView/UITextField检测并过滤Emoji表情符号
UITextView/UITextField检测并过滤Emoji表情符号
|
iOS开发
设计iOS中随系统键盘弹收和内容文字长度自适应高度的文本框
设计iOS中随系统键盘弹收和内容文字长度自适应高度的文本框
215 0
设计iOS中随系统键盘弹收和内容文字长度自适应高度的文本框
|
C#
WPF TextBox/TextBlock 文本超出显示时,文本靠右显示
原文:WPF TextBox/TextBlock 文本超出显示时,文本靠右显示 文本框显示 文本框正常显示: 文本框超出区域显示:    实现方案 判断文本框是否超出区域 请见《TextBlock IsTextTrimmed 判断文本是否超出》 设置文本布局显示 1.
1702 0