| 
					
				 | 
			
			
				@@ -128,14 +128,48 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // 输入控制 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    NSString *newString = [textView.text stringByReplacingCharactersInRange:range withString:text]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if (newString.length > 500) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return NO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    UITextRange *markedTextRange = textView.markedTextRange; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (markedTextRange) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 当前处于拼音输入状态,暂不更新 attributedText 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return YES; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    NSString *newText = [[textView text] stringByReplacingCharactersInRange:range withString:text]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (newText.length > 500) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        newText = [newText substringWithRange:NSMakeRange(0, 500)]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        textView.text = newText; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     return YES; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+- (void)updateTextViewLineHeight:(UITextView *)textView { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    UITextRange *markedTextRange = textView.markedTextRange; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (markedTextRange) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 当前处于拼音输入状态,暂不更新 attributedText 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [UIView setAnimationsEnabled:YES]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+- (void)textViewDidChange:(UITextView *)textView { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 获取当前高亮的部分(如果正在拼音输入状态) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        UITextRange *selectedRange = [textView markedTextRange]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        UITextPosition *position = [textView positionFromPosition:selectedRange.start offset:0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 如果没有高亮选择的文本,说明不是拼音输入状态 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (!position) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 获取当前textView的内容 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        NSString *currentText = textView.text; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 如果文本超出最大长度,进行截取 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (currentText.length > 500) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            NSString *limitedText = [currentText substringToIndex:500]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            textView.text = limitedText; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [self updateTextViewLineHeight:textView]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 - (BOOL)textViewShouldEndEditing:(UITextView *)textView { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     [self endEditing:YES]; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -147,8 +181,9 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    if ([string isEqualToString:@"\n"]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        [self endEditing:YES]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    UITextRange *markedTextRange = textField.markedTextRange; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (markedTextRange) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 当前处于拼音输入状态,暂不更新 attributedText 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return YES; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 输入控制 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -159,6 +194,32 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     return YES; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+- (void)textFieldDidChangeSelection:(UITextField *)textField { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 获取当前高亮的部分(如果正在拼音输入状态) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    UITextRange *selectedRange = [textField markedTextRange]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    UITextPosition *position = [textField positionFromPosition:selectedRange.start offset:0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (!position) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 获取当前textView的内容 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        NSString *currentText = textField.text; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 如果文本超出最大长度,进行截取 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (currentText.length > 50) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            NSString *limitedText = [currentText substringToIndex:50]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            textField.text = limitedText; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [self updateTextFieldLineHeight:textField]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+- (void)updateTextFieldLineHeight:(UITextField *)textField { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    UITextRange *markedTextRange = textField.markedTextRange; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (markedTextRange) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 当前处于拼音输入状态,暂不更新 attributedText 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    [UIView setAnimationsEnabled:YES]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 - (UIScrollView *)scrollView { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (!_scrollView) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         _scrollView = [[UIScrollView alloc] initWithFrame:CGRectZero]; 
			 |