美文网首页
016-通知各参数的意义

016-通知各参数的意义

作者: 紫荆秋雪_文 | 来源:发表于2017-02-18 22:11 被阅读40次

    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)
        }
    
    }
    
    

    相关文章

      网友评论

          本文标题:016-通知各参数的意义

          本文链接:https://www.haomeiwen.com/subject/jledwttx.html