         activateConstraints()
     }
     
-    open override func didMoveToWindow() {
-        super.didMoveToWindow()
+    /// Respect iPhone X safeAreaInsets
+    /// Adds a constraint to anchor the bottomAnchor of the contentView to the window's safeAreaLayoutGuide.bottomAnchor
+    ///
+    /// - Parameter window: The window to anchor to
+    private func setupConstraints(to window: UIWindow?) {
         if #available(iOS 11.0, *) {
-            // Respect iPhone X safeAreaInsets
             guard UIScreen.main.nativeBounds.height == 2436 else { return }
             if let window = window {
-                
-                let windowConstraint = contentView.bottomAnchor.constraintLessThanOrEqualToSystemSpacingBelow(window.safeAreaLayoutGuide.bottomAnchor, multiplier: 1)
-                windowConstraint.constant = -padding.bottom
-                windowConstraint.priority = UILayoutPriority(rawValue: 750)
-                windowConstraint.isActive = true
+                windowAnchor?.isActive = false
+                windowAnchor = contentView.bottomAnchor.constraintLessThanOrEqualToSystemSpacingBelow(window.safeAreaLayoutGuide.bottomAnchor, multiplier: 1)
+                windowAnchor?.constant = -padding.bottom
+                windowAnchor?.priority = UILayoutPriority(rawValue: 750)
+                windowAnchor?.isActive = true
             }
         }
     }
-
     
     // MARK: - Constraint Layout Updates
     

        }
    }
    
    /// A SeparatorLine that is initially placed in the topStackView
    open let separatorLine = SeparatorLine()
    
    /**

    /**
     The anchor constants used by the InputStackView
     
     ````
     V:|...-(padding.top)-(textViewPadding.top)-[InputTextView]-(textViewPadding.bottom)-[InputStackView.bottom]-...|
     
     H:|...-[InputStackView.left]-(textViewPadding.left)-[InputTextView]-(textViewPadding.right)-[InputStackView.right]-...|
     ````
     
     */
