         self.commonInitializer()
     }
     
+    open override var intrinsicContentSize: CGSize {
+        guard self.text.isEmpty == true, let attributedPlaceholder = self.attributedPlaceholder else {
+            return super.intrinsicContentSize
+        }
+        
+        let placeholderInsets = self.placeholderInsets
+        return CGSize(width: UIView.noIntrinsicMetric, height: self.placeholderUsedRect(for: attributedPlaceholder).height + placeholderInsets.top + placeholderInsets.bottom)
+    }
+    
     // MARK: - Superclass API
     
     open override func caretRect(for position: UITextPosition) -> CGRect {

    
    private lazy var placeholderTextContainer: NSTextContainer = NSTextContainer()
    
    // MARK: - Open Properties
    
    /// The attributed string that is displayed when there is no other text in the placeholder text view. This value is `nil` by default.

            return super.caretRect(for: position)
        }
        
        var caretRect = super.caretRect(for: position)
        
        let placeholderUsedRect = self.placeholderUsedRect(for: attributedPlaceholder)
        
        let userInterfaceLayoutDirection: UIUserInterfaceLayoutDirection
        if #available(iOS 10.0, *) {
