在 Swift 中实施响应程序操作

Implementing responder action in Swift

我在为 Swift 中的 NSMenuItem 执行操作时遇到困难。通常,您在 Objective-C:

中实现这样的操作
- (void) asdf:(id)sender

在像这样在第一响应者中设置操作后,这工作得很好:

然而,在 Swift 中重写我的视图控制器后,似乎没有调用以下新方法:

func asdf(sender: AnyObject?)

它似乎不起作用,即使 Obj-C 和 Swift 版本都用于相同的视图控制器子类。

在 Swift 3.0 中,您将其定义为:

func asdf(_ sender: Any)

为什么?

如果你使用_你可以在调用函数时去掉参数名,所以现在你可以像这样调用它:

object.asdf(object)

而不是:

object.asdf(sender: object)

此外,对于 Swift,在此上下文中您将使用 Any 而不是 AnyObject。您可以找到更多关于 here.

之间差异的信息