当我调用toggleFullScreen
、makeKeyAndOrderFront
或其他函数时,我没有找到关于sender
参数的文档,文档只是说sender
应该是 *'发送消息的对象,。
例如,调用toggleFullScreen
时,无法通过传递给窗口委托中windowDidEnterFullScreen
的通知来检索sender
的值。
这个参数实际上是做什么的?我给前面提到的例子传递什么值真的重要吗?这些值还会再出现吗?
在实践中,sender很难正确使用,因为你需要小心地确保发送者之间的一致性,接收者对sender对象有一定的期望(它的类型,或者它响应什么消息),而这些期望不能在类型系统中编码。
如何从 “收件人” 端访问此值?
1条答案
按热度按时间vybvopom1#
所有具有
sender
参数的API都是响应器链的一部分。这意味着您可以将Interface Builder中的任何UI元素(例如按钮或菜单项,甚至是多个类中的多个)连接到First Responder类(红色立方体)中的方法
makeKeyAndOrderFront
。顾名思义,***第一个***类(它***响应***该方法)接受它。
sender
参数的用途是确定 * 谁 * 调用了该方法。边注:如果Interface Builder中只有一个连接,您甚至可以将
sender
参数的类型更改为静态类型(例如NSButton
或NSMenuItem
),以避免类型转换。