VSInputView 0.0.1

VSInputView 0.0.1

测试测试
语言语言 Obj-CObjective C
许可证 MIT
发布最后发布2016年12月

[visooon] 维护。



  • vison

UITextField 和 UITextView 的输入计数限制!

预览 gif

image

用法

UITextField

    self.VSTextField.maxLength = 20;
    //show a accessory view to show the limit of inputing text.
    self.VSTextField.showLimitLengthAccessoryView = YES;
    self.VSTextField.placeholder = @"This is textField!";

UITextView

    self.VSTextView.maxLength = 30;
    self.VSTextView.placeHolder = @"This is textView!";
    self.VSTextView.showLimitLengthAccessoryView = YES;

核心代码

- (void)vs_limitText {
    if (self.maxLength == NSIntegerMax) {
        return;
    }
    NSInteger currentInputLocation = [self vs_getCurrentInputLocation];
    NSInteger inputLength = currentInputLocation - self.preInputLocation;

    if (self.text.length > self.maxLength) {
        NSMutableString *selfText = [self.text mutableCopy];
        NSInteger needDeleteLength = self.text.length - self.maxLength;
        //calculate the range of need to be delete in whole text
        NSRange needDeleteRange = NSMakeRange(self.preInputLocation + (inputLength - needDeleteLength), needDeleteLength);
        [selfText deleteCharactersInRange:needDeleteRange];
        self.text = selfText;
    }
    self.preInputLocation = [self vs_getCurrentInputLocation];
}