YOUPAINIMGrowingTextView.h 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. //
  2. // YOUPAINIMGrowingTextView.h
  3. // NIMKit
  4. //
  5. // Created by chris on 16/3/27.
  6. // Copyright © 2016年 Netease. All rights reserved.
  7. //
  8. #import <UIKit/UIKit.h>
  9. @class YOUPAINIMGrowingTextView;
  10. @protocol NIMGrowingTextViewDelegate <NSObject>
  11. @optional
  12. - (BOOL)youpaifshouldChangeTextInRange:(NSRange)range replacementText:(NSString *)replacementText;
  13. - (BOOL)youpaifshouldInteractWithURL:(NSURL *)URL inRange:(NSRange)range;
  14. - (BOOL)youpaifshouldInteractWithTextAttachment:(NSTextAttachment *)textAttachment inRange:(NSRange)range;
  15. - (void)textViewDidBeginEditing:(YOUPAINIMGrowingTextView *)growingTextView;
  16. - (void)textViewDidChangeSelection:(YOUPAINIMGrowingTextView *)growingTextView;
  17. - (void)textViewDidEndEditing:(YOUPAINIMGrowingTextView *)growingTextView;
  18. - (BOOL)textViewShouldBeginEditing:(YOUPAINIMGrowingTextView *)growingTextView;
  19. - (BOOL)textViewShouldEndEditing:(YOUPAINIMGrowingTextView *)growingTextView;
  20. - (void)textViewDidChange:(YOUPAINIMGrowingTextView *)growingTextView;
  21. - (void)youpaifwillChangeHeight:(CGFloat)height;
  22. - (void)youpaifdidChangeHeight:(CGFloat)height;
  23. @end
  24. @interface YOUPAINIMGrowingTextView : UIScrollView
  25. @property (nonatomic,weak) id<NIMGrowingTextViewDelegate> textViewDelegate;
  26. @property (nonatomic,assign) NSInteger minNumberOfLines;
  27. @property (nonatomic,assign) NSInteger maxNumberOfLines;
  28. @property (nonatomic,strong) UIView *inputView;
  29. @end
  30. @interface YOUPAINIMGrowingTextView(TextView)
  31. @property (nonatomic,copy) NSAttributedString *placeholderAttributedText;
  32. @property (nonatomic,copy) NSString *text;
  33. @property (nonatomic,strong) UIFont *font;
  34. @property (nonatomic,strong) UIColor *textColor;
  35. @property (nonatomic,assign) NSTextAlignment textAlignment;
  36. @property (nonatomic,assign) NSRange selectedRange;
  37. @property (nonatomic,assign) UIDataDetectorTypes dataDetectorTypes;
  38. @property (nonatomic,assign) BOOL editable;
  39. @property (nonatomic,assign) BOOL selectable;
  40. @property (nonatomic,assign) BOOL allowsEditingTextAttributes;
  41. @property (nonatomic,copy) NSAttributedString *attributedText;
  42. @property (nonatomic,strong) UIView *textViewInputAccessoryView;
  43. @property (nonatomic,assign) BOOL clearsOnInsertion;
  44. @property (nonatomic,readonly) NSTextContainer *textContainer;
  45. @property (nonatomic,assign) UIEdgeInsets textContainerInset;
  46. @property (nonatomic,readonly) NSLayoutManager *layoutManger;
  47. @property (nonatomic,readonly) NSTextStorage *textStorage;
  48. @property (nonatomic, copy) NSDictionary<NSString *, id> *linkTextAttributes;
  49. @property (nonatomic,assign) UIReturnKeyType returnKeyType;
  50. - (void)scrollRangeToVisible:(NSRange)range;
  51. @end