         let constraint: NSLayoutConstraint
         
         switch (textAlignment, UIApplication.shared.userInterfaceLayoutDirection) {
-        case (.natural, .leftToRight), (.justified, .leftToRight), (.left, _):
+        case (.left, .leftToRight), (.right, .rightToLeft), (.justified, .leftToRight), (.natural, _):
             constraint = placeholderView.leadingAnchor.constraint(equalTo: placeholderContainerView.leadingAnchor)
-        case (.natural, .rightToLeft), (.justified, .rightToLeft), (.right, _):
+        case (.left, .rightToLeft), (.right, .leftToRight), (.justified, .rightToLeft):
             constraint = placeholderContainerView.trailingAnchor.constraint(equalTo: placeholderView.trailingAnchor)
         case (.center, _):
             constraint = placeholderView.centerXAnchor.constraint(equalTo: placeholderContainerView.centerXAnchor)

        let constraint: NSLayoutConstraint
        
        switch (textAlignment, UIApplication.shared.userInterfaceLayoutDirection) {
        case (.natural, .leftToRight), (.justified, .leftToRight), (.left, _):
            constraint = placeholderView.leadingAnchor.constraint(equalTo: placeholderContainerView.leadingAnchor)
        case (.natural, .rightToLeft), (.justified, .rightToLeft), (.right, _):
            constraint = placeholderContainerView.trailingAnchor.constraint(equalTo: placeholderView.trailingAnchor)
        case (.center, _):
            constraint = placeholderView.centerXAnchor.constraint(equalTo: placeholderContainerView.centerXAnchor)

    /// Whether the left view is displayed to the left or to the right of the text.
    private var rightViewPosition: HorizontalPosition {
        
        if UIApplication.shared.userInterfaceLayoutDirection == .rightToLeft {
            return .left
        } else {
            return .right
