 /**
  * The delegate of ExpandableLabel.
  */
-public protocol ExpandableLabelDelegate: NSObjectProtocol {
-    func willExpandLabel(_ label: ExpandableLabel)
-    func didExpandLabel(_ label: ExpandableLabel)
-    
-    func willCollapseLabel(_ label: ExpandableLabel)
-    func didCollapseLabel(_ label: ExpandableLabel)
+@objc public protocol ExpandableLabelDelegate: NSObjectProtocol {
+    @objc func willExpandLabel(_ label: ExpandableLabel)
+    @objc func didExpandLabel(_ label: ExpandableLabel)
+    
+    @objc func willCollapseLabel(_ label: ExpandableLabel)
+    @objc func didCollapseLabel(_ label: ExpandableLabel)
 }
 
 /**
  * ExpandableLabel
  */
-open class ExpandableLabel: UILabel {
+@objc open class ExpandableLabel: UILabel {
     
     public enum TextReplacementType {
         case character

    }
    
    /// The delegate of ExpandableLabel
    weak open var delegate: ExpandableLabelDelegate?
    
    /// Set 'true' if the label should be collapsed or 'false' for expanded.
    @IBInspectable open var collapsed: Bool = true {

        }
    }
    
    @objc public required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        commonInit()
    }
    
    @objc public override init(frame: CGRect) {
        super.init(frame: frame)
        self.commonInit()
    }
    
    @objc public init() {
        super.init(frame: .zero)
    }
    
