美文网首页iOS进阶指南iOS学习笔记IOS
如何更好的限制一个UITextField/UITextView的

如何更好的限制一个UITextField/UITextView的

作者: 蒲公英少年 | 来源:发表于2016-01-19 16:46 被阅读1211次

    要限制一个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];
                }
            }
        }
    

    相关文章

      网友评论

        本文标题:如何更好的限制一个UITextField/UITextView的

        本文链接:https://www.haomeiwen.com/subject/muakkttx.html