• iOS


    前言

    	NS_CLASS_AVAILABLE_IOS(2_0) @interface UITextView : UIScrollView <UITextInput>
    	@available(iOS 2.0, *)		 public class UITextView : UIScrollView, UITextInput
    
    • UITextView 具有 label 大部分属性,以及 textField 的属性。

    1、UITextView 的创建

    • Objective-C

      	UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(10, 30, self.view.frame.size.width - 20, 400)];
          
          // 将 textView 添加到 view
      	[self.view addSubview:textView];
      
    • Swift

      	let textView:UITextView = UITextView(frame: CGRectMake(10, 30, self.view.frame.size.width - 20, 400))
      	    
      	// 将 textView 添加到 view
      	self.view.addSubview(textView)
      

    2、UITextView 的设置

    • Objective-C

      	// 设置背景颜色
      	textView.backgroundColor = [UIColor lightGrayColor];
      	    
      	// 设置文本
      	/*
      		由于 UITextView 具有滚动功能,当 text 文本内容较多时可以实现滚动阅读和编辑
      	*/
      	textView.text = @"写代码快乐
      15911110524
      写代码快乐
      https://www.baidu.com
      写代码快乐";
      	    
      	// 设置对齐方式
      	/*
      		NSTextAlignmentLeft      = 0,    // Visually left aligned
      		NSTextAlignmentCenter    = 1,    // Visually centered
      		NSTextAlignmentRight     = 2,    // Visually right aligned
      		NSTextAlignmentJustified = 3,    // Fully-justified. The last line in a paragraph is natural-aligned.
      		NSTextAlignmentNatural   = 4,    // Indicates the default alignment for script
      	*/
      	textView.textAlignment = NSTextAlignmentLeft;
      	    
      	// 设置文本颜色
      	textView.textColor = [UIColor redColor];
      	    
      	// 设置字体
      	textView.font = [UIFont boldSystemFontOfSize:20];
      	    
      	// 对文本中的电话和网址自动加链接 
      	/*
      		UIDataDetectorTypePhoneNumber                              = 1 << 0,  // Phone number detection
      		UIDataDetectorTypeLink                                     = 1 << 1,  // URL detection
      		UIDataDetectorTypeAddress NS_ENUM_AVAILABLE_IOS(4_0)       = 1 << 2,  // Street address detection
      		UIDataDetectorTypeCalendarEvent NS_ENUM_AVAILABLE_IOS(4_0) = 1 << 3,  // Event detection
      		UIDataDetectorTypeNone                                     = 0,       // No detection at all
      		UIDataDetectorTypeAll                                      = NSUIntegerMax    // All types
      	*/
      	textView.dataDetectorTypes = UIDataDetectorTypeAll;
      	    
      	// 禁止编辑
      	/*
      		设置为只读,不再能输入内容
      	*/
      	textView.editable = NO;
      	    
      	// 禁止选择
      	/*
      		禁止选中文本,此时文本也禁止编辑
      	*/
      	textView.selectable = NO;
      	    
      	// 禁止滚动
      	textView.scrollEnabled = NO;
      	    
      	// 获取当前选择的范围
      	NSRange range = textView.selectedRange;
      	   	
      	// 设置可以对选中的文字加粗
      	/*
      		选中文字时可以对选中的文字加粗
      	*/
      	textView.allowsEditingTextAttributes = YES;
      	    
      	// 设置 textView 的代理,需遵守协议 <UITextViewDelegate>
      	textView.delegate = self;
      
    • Swift

      	// 设置背景颜色
      	textView.backgroundColor = UIColor.lightGrayColor()
      	    
      	// 设置文本
      	/*
      		由于 UITextView 具有滚动功能,当 text 文本内容较多时可以实现滚动阅读和编辑
      	*/
      	textView.text = "写代码快乐
      15911110524
      写代码快乐
      https://www.baidu.com
      写代码快乐"
      	    
      	// 设置文本颜色
      	textView.textColor = UIColor.redColor()
      	    
      	// 设置对齐方式
      	/*
      		case Left       // Visually left aligned
      		case Center     // Visually centered
      		case Right      // Visually right aligned
      		case Justified  // Fully-justified. The last line in a paragraph is natural-aligned.
      		case Natural    // Indicates the default alignment for script
      	*/
      	textView.textAlignment = .Left
      	    
      	// 设置字体
      	textView.font = UIFont.systemFontOfSize(20)
      	    
      	// 对文本中的电话和网址自动加链接
      	/*
      		PhoneNumber      // Phone number detection
      		Link             // URL detection
      		Address          // Street address detection
      		CalendarEvent    // Event detection
      		None             // No detection at all
      		All              // All types
      	*/
      	textView.dataDetectorTypes = .All
      	    
      	// 禁止编辑
      	/*
      		设置为只读,不再能输入内容
      	*/
      	textView.editable = false
      	    
      	// 禁止选择
      	/*
      		禁止选中文本,此时文本也禁止编辑
      	*/
      	textView.selectable = false
      	    
      	// 禁止滚动
      	textView.scrollEnabled = false
      	    
      	// 获取当前选择的范围
      	let range:NSRange = textView.selectedRange
      	   	
      	// 设置可以对选中的文字加粗
      	/*
      		选中文字时可以对选中的文字加粗
      	*/
      	textView.allowsEditingTextAttributes = true
      	    
      	// 设置 textView 的代理,需遵守协议 UITextViewDelegate
      	textView.delegate = self
      

    3、UITextViewDelegate 的协议方法

    • 需遵守协议 UITextViewDelegate,并设置代理

    • Objective-C

          // 将要开始编辑,编辑开始前被调用
          - (BOOL)textViewShouldBeginEditing:(UITextView *)textView {
      
              return YES;
          }
      
          // 已经开始编辑,编辑开始后被调用
          - (void)textViewDidBeginEditing:(UITextView *)textView {
      
          }
      
          // 将要结束编辑,编辑结束前被调用
          - (BOOL)textViewShouldEndEditing:(UITextView *)textView {
              
              return YES;
          }
      
          // 已经结束编辑,编辑结束后被调用
          - (void)textViewDidEndEditing:(UITextView *)textView {
              
              NSLog(@"编辑的内容是 : %@", textView.text);
          }
      
          // 文本修改,文本修改前被调用
          - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
          
              return YES;
          }
      
          // 文本变更,文本变更时被调用,每输入一个字符时都会被调用
          - (void)textViewDidChange:(UITextView *)textView {
      
          }
      
          // 游标移动,选择范围发生变化时被调用
          - (void)textViewDidChangeSelection:(UITextView *)textView {
      
          }
      
    • Swift

      	// 将要开始编辑,编辑开始前被调用
      	func textViewShouldBeginEditing(textView: UITextView) -> Bool {
      	    
      	    return true
      	}
      	    
      	// 已经开始编辑,编辑开始后被调用
      	func textViewDidBeginEditing(textView: UITextView) {
      	    
      	}
      	    
      	// 将要结束编辑,编辑结束前被调用
      	func textViewShouldEndEditing(textView: UITextView) -> Bool {
      	    
      	    return true
      	}
      	    
      	// 已经结束编辑,编辑结束后被调用
      	func textViewDidEndEditing(textView: UITextView) {
      	    
      	    print("编辑的内容是 : (textView.text)")
      	}
      	    
      	// 文本修改,文本修改前被调用
      	func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText text: String) -> Bool {
      	    
      	    return true
      	}
      	    
      	// 文本变更,文本变更时被调用,每输入一个字符时都会被调用
      	func textViewDidChange(textView: UITextView) {
      	    
      	}
      	    
      	// 游标移动,选择范围发生变化时被调用
      	func textViewDidChangeSelection(textView: UITextView) {
      	    
      	}
      
  • 相关阅读:
    ASP.NET MVC构建RESTful服务时返回Unauthorized(401)状态
    [原]jQuery Tab插件,用于在Tab中显示iframe,附源码和详细说明
    [转]线程间操作无效: 从不是创建控件“ *** ”的线程访问它。
    ASP.NET MVC中RESTful原教旨主义者的两个实现细节
    [原]C#绘制等值线二 等值线追踪
    Nginx+iptables 防DDOS,恶意访问,采集器
    Nginx+iptables屏蔽访问Web页面过于频繁的IP(防DDOS,恶意访问,采集器)
    解决CC攻击,Linux VPS,登录SSH,登录进VPS控制面板
    Inno Setup打包程序默认选择创建桌面图标
    苹果笔记本连接黑莓设置
  • 原文地址:https://www.cnblogs.com/QianChia/p/5753887.html
Copyright © 2020-2023  润新知