Как удалить атрибуты из NSAttributedString swift?

Я добавил некоторые атрибуты к моим кнопкам с атрибутом

 let attr = NSMutableAttributedString(string: currTitle)

 attr.addAttribute(NSStrikethroughStyleAttributeName, value: 2, range: NSMakeRange(0, attr.length))
 attr.addAttribute(NSForegroundColorAttributeName, value: UIColor.redColor(), range: NSMakeRange(0,  attr.length))

 currButton?.setAttributedTitle(attr, forState: UIControlState.Normal)

Как я могу удалить NSStrikethroughStyleAttributeName из него после нажатия кнопки?

Ответ 1

Используйте метод removeAttribute:

attr.removeAttribute(NSStrikethroughStyleAttributeName, range: NSMakeRange(0, attr.length))

Ответ 2

Это очень просто. Вы можете использовать этот метод из NSMutableAttributedString class

func removeAttribute(_ name: String,
               range range: NSRange)

В вашем случае

attr.removeAttribute(NSStrikethroughStyleAttributeName , range:NSMakeRange(0, attr.length))

Ответ 3

В Swift 5

let attributeString: NSMutableAttributedString =  NSMutableAttributedString(string: "YourStringHere")
attributeString.removeAttribute(NSAttributedString.Key.strikethroughStyle, range: NSMakeRange(0, attributeString.length))
yourLblHere.attributedText = attributeString