LoginSignup
2
0

More than 5 years have passed since last update.

【iOS】Storyboard上に配置したオブジェクトのInspectorからSent Eventsが消える現象の解決

Posted at

現象

Storyboardに配置したUIButtonのInspectorからSent Eventsが消え、ボタンアクションを設定出来なくなった。

本来↓
スクリーンショット 2017-08-09 19.02.40.png
現象発生時↓
スクリーンショット 2017-08-09 19.02.13.png

原因

UIButtonのextensionでProtocolを継承させたことによるものだった。
TargetedExtensionを利用してUIButtonを拡張しようとしたことにより発生した。

public protocol ExampleCompatible {
    associatedtype CompatibleType

    var ex: CompatibleType { get }
}

public final class Example<Base> {
    let base: Base
    public init(_ base: Base) {
        self.base = base
    }
}

public extension ExampleCompatible {
    public var ex: Example<Self> {
        return Example(self)
    }
}

extension UIButton: ExampleCompatible { }

extension Example where Base == UIButton {
    func hoge() {

    }
}

「そりゃたしかにそうなるわ」という感じでした。

解決

UIButtonを拡張しない
UIButtonを継承したカスタムクラスを作っても良いし、角丸や枠線等であればCALayerに対して拡張すれば良い。

考え無しにextension生やした結果でした・・orz

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0