From 3e8437ae559487362fae3525beb79c534c213a51 Mon Sep 17 00:00:00 2001 From: 单军华 Date: Thu, 12 Jul 2018 13:44:34 +0800 Subject: [PATCH] bug修复和功能优化 --- screendisplay/Pods/EaseUI/EaseUI/EMUIKit/Views/conversation/toolbar/EaseTextView.m | 167 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 167 insertions(+), 0 deletions(-) diff --git a/screendisplay/Pods/EaseUI/EaseUI/EMUIKit/Views/conversation/toolbar/EaseTextView.m b/screendisplay/Pods/EaseUI/EaseUI/EMUIKit/Views/conversation/toolbar/EaseTextView.m new file mode 100755 index 0000000..9ff4d37 --- /dev/null +++ b/screendisplay/Pods/EaseUI/EaseUI/EMUIKit/Views/conversation/toolbar/EaseTextView.m @@ -0,0 +1,167 @@ +/************************************************************ + * * Hyphenate CONFIDENTIAL + * __________________ + * Copyright (C) 2016 Hyphenate Inc. All rights reserved. + * + * NOTICE: All information contained herein is, and remains + * the property of Hyphenate Inc. + * Dissemination of this information or reproduction of this material + * is strictly forbidden unless prior written permission is obtained + * from Hyphenate Inc. + */ + +#import "EaseTextView.h" + +@implementation EaseTextView + +#pragma mark - Setters + +- (void)setPlaceHolder:(NSString *)placeHolder { + if([placeHolder isEqualToString:_placeHolder]) { + return; + } + + NSUInteger maxChars = [EaseTextView maxCharactersPerLine]; + if([placeHolder length] > maxChars) { + placeHolder = [placeHolder substringToIndex:maxChars - 8]; + placeHolder = [[placeHolder stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] stringByAppendingFormat:@"..."]; + } + + _placeHolder = placeHolder; + [self setNeedsDisplay]; +} + +- (void)setPlaceHolderTextColor:(UIColor *)placeHolderTextColor { + if([placeHolderTextColor isEqual:_placeHolderTextColor]) { + return; + } + + _placeHolderTextColor = placeHolderTextColor; + [self setNeedsDisplay]; +} + +#pragma mark - Message text view + +- (NSUInteger)numberOfLinesOfText +{ + return [EaseTextView numberOfLinesForMessage:self.text]; +} + ++ (NSUInteger)maxCharactersPerLine { + return ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPhone) ? 33 : 109; +} + ++ (NSUInteger)numberOfLinesForMessage:(NSString *)text { + return (text.length / [EaseTextView maxCharactersPerLine]) + 1; +} + +#pragma mark - Text view overrides + +- (void)setText:(NSString *)text { + [super setText:text]; + [self setNeedsDisplay]; +} + +- (void)setAttributedText:(NSAttributedString *)attributedText { + [super setAttributedText:attributedText]; + [self setNeedsDisplay]; +} + +//- (void)setContentInset:(UIEdgeInsets)contentInset { +// [super setContentInset:contentInset]; +// [self setNeedsDisplay]; +//} + +- (void)setFont:(UIFont *)font { + [super setFont:font]; + [self setNeedsDisplay]; +} + +- (void)setTextAlignment:(NSTextAlignment)textAlignment { + [super setTextAlignment:textAlignment]; + [self setNeedsDisplay]; +} + +#pragma mark - Notifications + +- (void)didReceiveTextDidChangeNotification:(NSNotification *)notification { + [self setNeedsDisplay]; +} + +#pragma mark - Life cycle + +- (void)setup { + self.accessibilityIdentifier = @"text_view"; + + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(didReceiveTextDidChangeNotification:) + name:UITextViewTextDidChangeNotification + object:self]; + + _placeHolderTextColor = [UIColor lightGrayColor]; + + self.autoresizingMask = UIViewAutoresizingFlexibleWidth; + self.scrollIndicatorInsets = UIEdgeInsetsMake(10.0f, 0.0f, 10.0f, 8.0f); + self.contentInset = UIEdgeInsetsZero; + self.scrollEnabled = YES; + self.scrollsToTop = NO; + self.userInteractionEnabled = YES; + self.font = [UIFont systemFontOfSize:16.0f]; + self.textColor = [UIColor blackColor]; + self.backgroundColor = [UIColor whiteColor]; + self.keyboardAppearance = UIKeyboardAppearanceDefault; + self.keyboardType = UIKeyboardTypeDefault; + self.returnKeyType = UIReturnKeyDefault; + self.textAlignment = NSTextAlignmentLeft; +} + +- (id)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + // Initialization code + [self setup]; + } + return self; +} + +- (void)dealloc { + _placeHolder = nil; + _placeHolderTextColor = nil; + [[NSNotificationCenter defaultCenter] removeObserver:self name:UITextViewTextDidChangeNotification object:self]; +} + +#pragma mark - Drawing + +- (void)drawRect:(CGRect)rect +{ + [super drawRect:rect]; + + if([self.text length] == 0 && self.placeHolder) { + CGRect placeHolderRect = CGRectMake(10.0f, + 7.0f, + rect.size.width, + rect.size.height); + + [self.placeHolderTextColor set]; + + if (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_7_0) { + NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init]; + paragraphStyle.lineBreakMode = NSLineBreakByTruncatingTail; + paragraphStyle.alignment = self.textAlignment; + + [self.placeHolder drawInRect:placeHolderRect + withAttributes:@{ NSFontAttributeName : self.font, + NSForegroundColorAttributeName : self.placeHolderTextColor, + NSParagraphStyleAttributeName : paragraphStyle }]; + } + else { + [self.placeHolder drawInRect:placeHolderRect + withFont:self.font + lineBreakMode:NSLineBreakByTruncatingTail + alignment:self.textAlignment]; + } + } +} + +@end -- Gitblit v1.8.0