一、 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
}