     public var onEndEditing: Closure?
     public var onPressedAction: ActionClosure?
     public var onChangedHeight: Closure?
-    
-    open override var intrinsicContentSize: CGSize {
-        get {
-            if self._placeholderLabel.isHidden == false {
-                return self._placeholderLabel.intrinsicContentSize
-            }
-            return self._field.intrinsicContentSize
-        }
-    }
 
     private var _placeholderLabel: QLabel!
     private var _field: Field!
     private var _fieldDelegate: FieldDelegate!
     private var _observer: QObserver< IQMultiTextFieldObserver > = QObserver< IQMultiTextFieldObserver >()
+    private var _constraints: [NSLayoutConstraint] = [] {
+        willSet { self.removeConstraints(self._constraints) }
+        didSet { self.addConstraints(self._constraints) }
+    }
     
     open override func setup() {
         super.setup()

    public var placeholderInsets: UIEdgeInsets = UIEdgeInsets.zero {
        didSet(oldValue) {
            if self.placeholderInsets != oldValue {
                self.setNeedsLayout()
            }
        }
    }

        self.textHeight = self._textHeight()
    }
    
    open override func updateConstraints() {
        super.updateConstraints()
        
        self._constraints = [
            self._placeholderLabel.topLayout == self.topLayout.offset(self.placeholderInsets.top),
            self._placeholderLabel.leadingLayout == self.leadingLayout.offset(self.placeholderInsets.left),
            self._placeholderLabel.trailingLayout == self.trailingLayout.offset(-self.placeholderInsets.right),
            self._placeholderLabel.bottomLayout == self.bottomLayout.offset(-self.placeholderInsets.bottom),
            self._field.topLayout == self.topLayout,
            self._field.leadingLayout == self.leadingLayout,
            self._field.trailingLayout == self.trailingLayout,
            self._field.bottomLayout == self.bottomLayout
        ]
    }
    
    public func add(observer: IQMultiTextFieldObserver, priority: UInt) {
        self._observer.add(observer, priority: priority)
    }
