         
         self.placeholderLayoutManager.ensureLayout(for: self.placeholderTextContainer)
         
-        return self.placeholderLayoutManager.usedRect(for: self.placeholderTextContainer)
+        return self.placeholderLayoutManager.lineFragmentUsedRect(forGlyphAt: 0, effectiveRange: nil)
     }
 }

        self.setNeedsDisplay()
    }
    
    private func placeholderUsedRect(for attributedPlaceholder: NSAttributedString) -> CGRect {
        
        if self.placeholderTextContainer.layoutManager == nil {
            

        switch userInterfaceLayoutDirection {
            
        case .rightToLeft:
            caretRect.origin.x = placeholderInsets.left + placeholderLineFragmentUsedRect.maxX - self.textContainer.lineFragmentPadding
            
        case .leftToRight:
            fallthrough
            
        @unknown default:
            caretRect.origin.x = placeholderInsets.left + placeholderLineFragmentUsedRect.minX + self.textContainer.lineFragmentPadding
        }
        
        return caretRect
