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)

さらに、Swiftでは、このコンテキストではAny代わりに使用します。AnyObjectこれらの違いの詳細については、こちらを参照してください。

于 2016-11-22T22:07:57.897 に答える