花落√莫相思iOS精華

37-Swift之UItextView

2017-06-26  本文已影响69人  NetWork小贱

一、 UITextView 的介绍

UITextView是用来显示字符串的组件,在手机上就是显示一块文本的区域

二、 UITextView的属性和方法

/**
 初始化
 */
var NwTextView = UITextView.init()
NwTextView = UITextView.init(frame: CGRect.init())
NwTextView = UITextView.init(frame: CGRect.init(x: 50, y: 70, width: 200, height: 300), textContainer: nil)
/**
 设置代理
 */
NwTextView.delegate = self
/**
 设置文字
 */
NwTextView.text = "成功QQ吧 VS NetWork小贱"
/**
 设置字体
 */
NwTextView.font = UIFont.systemFont(ofSize: 18)
/**
 设置字体的颜色
 */
NwTextView.textColor = UIColor.red
/**
 设置背景颜色
 */
NwTextView.backgroundColor = UIColor.gray
/**
 设置文字显示的样式
 */
NwTextView.textAlignment = NSTextAlignment.center
/**
 是否允许编辑
 */
NwTextView.isEditable = true
/**
 是否允许一些链接变成超链接
 */
NwTextView.isSelectable = true
/**
 是否允许编辑文本样式
 */
NwTextView.allowsEditingTextAttributes = true
/**
 设置样式
 */
NwTextView.attributedText = NSMutableAttributedString.init(string: NwTextView.text, attributes: [NSFontAttributeName:UIFont.systemFont(ofSize: 18),NSForegroundColorAttributeName:UIColor.red])
/**
 设置UITextView 弹出键盘的类型
 */
NwTextView.keyboardType = .URL
/**
 渲染
 */
self.view.addSubview(NwTextView)

三、UITextView 的监控

/**
 添加监控
 */
NotificationCenter.default.addObserver(self, selector: #selector(textChange(_:)), name: .UITextViewTextDidChange, object: NwTextView)

NotificationCenter.default.addObserver(self, selector: #selector(textDidEnd(_:)), name: .UITextViewTextDidEndEditing, object: NwTextView)

NotificationCenter.default.addObserver(self, selector: #selector(textDidBegin(_:)), name: .UITextViewTextDidBeginEditing, object: NwTextView)

监控事件的触发函数

// MARK : 监控函数调用
// TODO : 只要文字输入就触发该函数,只触发一次
func textChange(_ textView:UITextView) {
    print("我被触发了")
}

// TODO : 文本编辑结束的时候,开始触发这个监控
func textDidEnd(_ textView:UITextView) {
     print("UITextView编辑结束")
}

// TODO : 文本开始编辑的时候开始调用此监控
func textDidBegin(_ textView:UITextView) {
     print("UITextView开始编辑")
}

四、UITextView 的代理事件

/**
 设置代理
 */
NwTextView.delegate = self

代理事件触发的函数

// MARK : UITextView的代理事件

// TODO : UITextView 在编辑的情况下输入文字的时候,调用该函数
func textViewDidChange(_ textView: UITextView) {
     print("textViewDidChange"  + textView.text)
}

// TODO : UITextView 编辑结束的时候调用该函数
func textViewDidEndEditing(_ textView: UITextView) {
    print("textViewDidEndEditing" + "编辑结束")
}

// TODO : 开始编辑的时候,调用该函数
func textViewDidBeginEditing(_ textView: UITextView) {
    print("textViewDidBeginEditing"+"开始编辑")
}

// TODO : 是否允许UITextView 编辑结束
func textViewShouldEndEditing(_ textView: UITextView) -> Bool {
     return true
}

// TODO : 是否允许UITextView 编辑开始
func textViewShouldBeginEditing(_ textView: UITextView) -> Bool {
     return true
}

// TODO : UITextView 一开始渲染就调用的函数
// 注意:手动调整光标位置时触发的委托,在第一次启动TextView编辑时,也会触发,会优先于键盘启动观察者事件,可以在这里区别是哪个TextView启动了键盘。本委托的优先执行率高于 textViewDidBeginEditing 代理 也高于 UIKeyboardWillShowNotification 通知
func textViewDidChangeSelection(_ textView: UITextView) {
     print("textViewDidChangeSelection")
}

// TODO : UITextView 输入文字的还没显示的时候,调用该函数,判断是否允许输入显示
func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
     return true
}

上一篇 下一篇

猜你喜欢

热点阅读