Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
4
Help us understand the problem. What is going on with this article?

More than 3 years have passed since last update.

@Takumi_Mori

Xcode8でStoryboardからActionを紐付けられない場合の対処方法

Xcode8で、これまでやっていたようにcontrolキーを押しながらUIButtonなどにActionを紐付けると、勝手にxxxWithSenderのような名称と紐付けが行われる上に実際実行してみるとunrecognized selectorを発生させる現象に悩まされました。

なお、onClickWithSenderというメソッドを書いて紐付けると、WithSenderWithSenderとか作られます。

原因

Xcode8で、Use Legacy Swift Language VersionYESになっている場合に起こる不具合のようです。
SWIFT_VERSION = 2.3が指定されているときに発生を確認しています。
詳細な解説については、以下で回答している方がいますのでそちらを参照。

Xcode 8 drag and connect @IBAction incorrectly adds “WithSender” on connection inspector IB

解決策

Swift3.0で実装する…のが一番正しいですが、ライブラリの関係などで行えないことも多いと思います。
上記内で書かれているように、右クリック(副ボタンのクリック)からイベントを選択して紐付けを行うと正常に紐付けすることができます。
(見た目上は変わらないんですが。。。)

この場合はボタンなので、Touch Up Insideを選択
スクリーンショット 2016-10-11 12.13.23.png

スクリーンショット 2016-10-11 12.13.43.png

蛇足

不安だったら、もうコードで.addTargetしちゃうのがいいと思います。

4
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
4
Help us understand the problem. What is going on with this article?