1、了解在发送通知时,通知方法中每个参数的作用
/**
通知方法中的参数
1.监听对象
2.监听方法
3.监听的通知字符串
4.发送通知的对象
- 如果是 nil,监听所有的对象
- 如果不为 nil,只监听 该对象发出的通知
*/
NotificationCenter.default.addObserver("监听通知的对象", selector: "接收到通知以后要执行的方法", name: "通知字符串", object: "发出该通知的对象")
1-1、最关键的差别是第四个参数
- 当发送通知的对象为 nil 时,无论是在TV1还是在TV2中输入内容,都会执行keyboardChange方法
//
// ViewController.swift
// 9-通知参数
//
// Created by 紫荆秋雪 on 2017/2/18.
// Copyright © 2017年 Revan. All rights reserved.
//
import UIKit
class ViewController: UIViewController {
/// TextView
@IBOutlet weak var TV1: UITextView!
/// Textview
@IBOutlet weak var TV2: UITextView!
override func viewDidLoad() {
super.viewDidLoad()
/// 添加监听方法
/**
通知方法中的参数
1.监听对象
2.监听方法
3.监听的通知字符串
4.发送通知的对象
- 如果是 nil,监听所有的对象
- 如果不为 nil,只监听 该对象发出的通知
*/
NotificationCenter.default.addObserver(self, selector: #selector(textViewChange), name: NSNotification.Name.UITextViewTextDidChange,
object: nil)
}
func textViewChange(n: NSNotification) {
print("监听textView输入内容")
}
//MARK: - 移除通知
deinit {
NotificationCenter.default.removeObserver(self)
}
}
- 当发送通知的对象为 TV1 时,只有在TV1中输入内容时,才会执行keyboardChange方法
//
// ViewController.swift
// 9-通知参数
//
// Created by 紫荆秋雪 on 2017/2/18.
// Copyright © 2017年 Revan. All rights reserved.
//
import UIKit
class ViewController: UIViewController {
/// TextView
@IBOutlet weak var TV1: UITextView!
/// Textview
@IBOutlet weak var TV2: UITextView!
override func viewDidLoad() {
super.viewDidLoad()
/// 添加监听方法
/**
通知方法中的参数
1.监听对象
2.监听方法
3.监听的通知字符串
4.发送通知的对象
- 如果是 nil,监听所有的对象
- 如果不为 nil,只监听 该对象发出的通知
*/
NotificationCenter.default.addObserver(self, selector: #selector(textViewChange), name: NSNotification.Name.UITextViewTextDidChange,
object: TV1)
}
func textViewChange(n: NSNotification) {
print("监听textView输入内容")
}
//MARK: - 移除通知
deinit {
NotificationCenter.default.removeObserver(self)
}
}