swift sender参数实际上在几个NSWindow方法中做什么?

fcg9iug3  于 2023-03-07  发布在  Swift
关注(0)|答案(1)|浏览(131)

当我调用toggleFullScreenmakeKeyAndOrderFront或其他函数时,我没有找到关于sender参数的文档,文档只是说sender应该是 *'发送消息的对象,。
例如,调用toggleFullScreen时,无法通过传递给窗口委托中windowDidEnterFullScreen的通知来检索sender的值。
这个参数实际上是做什么的?我给前面提到的例子传递什么值真的重要吗?这些值还会再出现吗?
在实践中,sender很难正确使用,因为你需要小心地确保发送者之间的一致性,接收者对sender对象有一定的期望(它的类型,或者它响应什么消息),而这些期望不能在类型系统中编码。
如何从 “收件人” 端访问此值?

vybvopom

vybvopom1#

所有具有sender参数的API都是响应器链的一部分。
这意味着您可以将Interface Builder中的任何UI元素(例如按钮或菜单项,甚至是多个类中的多个)连接到First Responder类(红色立方体)中的方法makeKeyAndOrderFront
顾名思义,***第一个***类(它***响应***该方法)接受它。sender参数的用途是确定 * 谁 * 调用了该方法。
边注:如果Interface Builder中只有一个连接,您甚至可以将sender参数的类型更改为静态类型(例如NSButtonNSMenuItem),以避免类型转换。

相关问题