2017-06-17 3 views
0

C'est le problème:Comment réparer les poignées de sélection verticales dans un style de paragraphe modifié dans UITextView (iOS)?

enter image description here

Ce que je l'ai fait?

J'ai mis un style de paragraphe à ce texte:

let titleParagraphStyle = NSMutableParagraphStyle() 
titleParagraphStyle.alignment = .natural 
titleParagraphStyle.paragraphSpacing = 33 

let attributes = [NSParagraphStyleAttributeName: titleParagraphStyle] 

Bien sûr, fait que le curseur soit énorme tout le temps, donc après cela, j'overrided caretfor et tout est OK jusqu'à ce que sélection du texte:

override func caretRect(for position: UITextPosition) -> CGRect { 
     var original = super.caretRect(for: position) 
     guard let isFont = self.font else { return original } 
     original.size.height = isFont.pointSize - isFont.descender 
     return original 
    } 

Ce que je suis absent ici? Comment puis-je rendre les poignées de sélection à la même taille que le texte?

+0

Utilisez-vous le storyboard? –

+0

@AaronZheng non d'une manière pertinente, juste héritage de UITextView et juste Storyboard pour ajouter la vue et le lien vers la source –

Répondre

0

Actuellement vous changez littéralement l'attribut d'espacement de votre texte qui, en aucun cas est possible de changer la taille du curseur de sélection. Qu'est-ce que vous pouvez faire est de simplement programmer l'espacement dans le textDidChange lorsque vous détectez que le yourTextField.attributedText?.size().width passe une certaine distance. Je présume que vous ne copiez pas et ne collez pas, alors cela fonctionnera. Faites-moi savoir autrement.

+0

Je ne comprends pas votre réponse, a essayé de modifier typingAttributes si le texte est sélectionné, mais rien ne s'est passé –

+0

J'ai vu que vous avez mis à jour votre réponse, mais pour être clair, il me manque quelques étapes, qu'est-ce qui peut définir cette distance? et si la définition de l'espacement des paragraphes n'est pas correcte, que sera-t-il? –