UITextView(QMUI)
@interface UITextView (QMUI)
/**
* convert UITextRange to NSRange, for example, [self qmui_convertNSRangeFromUITextRange:self.markedTextRange]
*/
- (NSRange)qmui_convertNSRangeFromUITextRange:(UITextRange *)textRange;
/**
* convert NSRange to UITextRange
* @return return nil if range is invalidate.
*/
- (nullable UITextRange *)qmui_convertUITextRangeFromNSRange:(NSRange)range;
/**
* 设置 text 会让 selectedTextRange 跳到最后一个字符,导致在中间修改文字后光标会跳到末尾,所以设置前要保存一下,设置后恢复过来
*/
- (void)qmui_setTextKeepingSelectedRange:(NSString *)text;
/**
* 设置 attributedText 会让 selectedTextRange 跳到最后一个字符,导致在中间修改文字后光标会跳到末尾,所以设置前要保存一下,设置后恢复过来
*/
- (void)qmui_setAttributedTextKeepingSelectedRange:(NSAttributedString *)attributedText;
/**
[UITextView scrollRangeToVisible:] 并不会考虑 textContainerInset.bottom,所以使用这个方法来代替
@param range 要滚动到的文字区域,如果 range 非法则什么都不做
*/
- (void)qmui_scrollRangeToVisible:(NSRange)range;
/**
* 将光标滚到可视区域
*/
- (void)qmui_scrollCaretVisibleAnimated:(BOOL)animated;
@end
Undocumented
-
convert UITextRange to NSRange, for example, [self qmui_convertNSRangeFromUITextRange:self.markedTextRange]
Declaration
Objective-C
- (NSRange)qmui_convertNSRangeFromUITextRange:(nonnull UITextRange *)textRange;
Swift
func qmui_convertNSRange(from textRange: UITextRange) -> NSRange
-
convert NSRange to UITextRange
Declaration
Objective-C
- (nullable UITextRange *)qmui_convertUITextRangeFromNSRange:(NSRange)range;
Swift
func qmui_convertUITextRange(from range: NSRange) -> UITextRange?
Return Value
return nil if range is invalidate.
-
设置 text 会让 selectedTextRange 跳到最后一个字符,导致在中间修改文字后光标会跳到末尾,所以设置前要保存一下,设置后恢复过来
Declaration
Objective-C
- (void)qmui_setTextKeepingSelectedRange:(nonnull NSString *)text;
Swift
func qmui_setTextKeepingSelectedRange(_ text: String)
-
设置 attributedText 会让 selectedTextRange 跳到最后一个字符,导致在中间修改文字后光标会跳到末尾,所以设置前要保存一下,设置后恢复过来
Declaration
Objective-C
- (void)qmui_setAttributedTextKeepingSelectedRange: (nonnull NSAttributedString *)attributedText;
Swift
func qmui_setAttributedTextKeepingSelectedRange(_ attributedText: NSAttributedString)
-
[UITextView scrollRangeToVisible:] 并不会考虑 textContainerInset.bottom,所以使用这个方法来代替
Declaration
Objective-C
- (void)qmui_scrollRangeToVisible:(NSRange)range;
Swift
func qmui_scrollRangeToVisible(_ range: NSRange)
Parameters
range
要滚动到的文字区域,如果 range 非法则什么都不做
-
将光标滚到可视区域
Declaration
Objective-C
- (void)qmui_scrollCaretVisibleAnimated:(BOOL)animated;
Swift
func qmui_scrollCaretVisible(animated: Bool)