QMUITextFieldDelegate

@protocol QMUITextFieldDelegate <UITextFieldDelegate>

@optional

/**
 *  配合 `maximumTextLength` 属性使用,在输入文字超过限制时被调用。
 *  @warning 在 UIControlEventEditingChanged 里也会触发文字长度拦截,由于此时 textField 的文字已经改变完,所以无法得知发生改变的文本位置及改变的文本内容,所以此时 range 和 replacementString 这两个参数的值也会比较特殊,具体请看参数讲解。
 *
 *  @param textField 触发的 textField
 *  @param range 要变化的文字的位置,如果在 UIControlEventEditingChanged 里,这里的 range 也即文字变化后的 range,所以可能比最大长度要大。
 *  @param replacementString 要变化的文字,如果在 UIControlEventEditingChanged 里,这里永远传入 nil。
 */
- (void)textField:(QMUITextField *)textField didPreventTextChangeInRange:(NSRange)range replacementString:(NSString *)replacementString;

@end

Undocumented

  • 配合 maximumTextLength 属性使用,在输入文字超过限制时被调用。

    Warning

    在 UIControlEventEditingChanged 里也会触发文字长度拦截,由于此时 textField 的文字已经改变完,所以无法得知发生改变的文本位置及改变的文本内容,所以此时 range 和 replacementString 这两个参数的值也会比较特殊,具体请看参数讲解。

    Declaration

    Objective-C

    - (void)textField:(QMUITextField *)textField
        didPreventTextChangeInRange:(NSRange)range
                  replacementString:(NSString *)replacementString;

    Swift

    optional func textField(_ textField: QMUITextField!, didPreventTextChangeIn range: NSRange, replacementString: String!)

    Parameters

    textField

    触发的 textField

    range

    要变化的文字的位置,如果在 UIControlEventEditingChanged 里,这里的 range 也即文字变化后的 range,所以可能比最大长度要大。

    replacementString

    要变化的文字,如果在 UIControlEventEditingChanged 里,这里永远传入 nil。