0

我很难在 Swift 中实现 NSMenuItem 的操作。通常,您在 Objective-C 中实现这样的操作:

- (void) asdf:(id)sender

在像这样在第一响应者中设置操作之后,这非常有效:

用户定义的第一响应者

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

func asdf(sender: AnyObject?)

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

4

1 回答 1

1

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

func asdf(_ sender: Any)

为什么?

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

object.asdf(object)

代替:

object.asdf(sender: object)

此外,在这种情况下,您可以使用 SwiftAny而不是。您可以在此处AnyObject找到有关它们之间差异的更多信息。

于 2016-11-22T22:07:57.897 回答