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