0

I am having difficulty implementing an action for an NSMenuItem in Swift. Normally, you implement the action like this in Objective-C:

- (void) asdf:(id)sender

This works perfectly fine, after setting up the action in the first responder like so:

user defined first responder

However, after rewriting my view controller in Swift, the following new method doesn't seem to be called:

func asdf(sender: AnyObject?)

It doesn't seem to work, even though both the Obj-C and Swift versions are for the same view controller subclass.

Daniel Node.js
  • 6,734
  • 9
  • 35
  • 57

1 Answers1

1

In Swift 3.0 you'd define it as:

func asdf(_ sender: Any)

Why?

If you use _ you can drop parameter name when calling a function, so now you can call it like:

object.asdf(object)

Instead of:

object.asdf(sender: object)

Moreover, with Swift you'd use Any instead of AnyObject in this context. You can find more on differences between those here.

Krodak
  • 1,493
  • 14
  • 21