mirror of
https://github.com/zhigang1992/GitHawk.git
synced 2026-06-14 01:35:05 +08:00
43 lines
1.3 KiB
Swift
43 lines
1.3 KiB
Swift
//
|
|
// NSAttributedString+Trim.swift
|
|
// Freetime
|
|
//
|
|
// Created by Ryan Nystrom on 6/14/17.
|
|
// Copyright © 2017 Ryan Nystrom. All rights reserved.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
// https://stackoverflow.com/a/38738940/940936
|
|
internal extension NSAttributedString {
|
|
|
|
func attributedStringByTrimmingCharacterSet(charSet: CharacterSet) -> NSAttributedString {
|
|
let modifiedString = NSMutableAttributedString(attributedString: self)
|
|
return modifiedString.trimCharactersInSet(charSet: charSet)
|
|
}
|
|
|
|
}
|
|
|
|
internal extension NSMutableAttributedString {
|
|
|
|
func trimCharactersInSet(charSet: CharacterSet) -> NSMutableAttributedString {
|
|
var range = (string as NSString).rangeOfCharacter(from: charSet)
|
|
|
|
// Trim leading characters from character set.
|
|
while range.length != 0 && range.location == 0 {
|
|
replaceCharacters(in: range, with: "")
|
|
range = (string as NSString).rangeOfCharacter(from: charSet)
|
|
}
|
|
|
|
// Trim trailing characters from character set.
|
|
range = (string as NSString).rangeOfCharacter(from: charSet, options: .backwards)
|
|
while range.length != 0 && NSMaxRange(range) == length {
|
|
replaceCharacters(in: range, with: "")
|
|
range = (string as NSString).rangeOfCharacter(from: charSet, options: .backwards)
|
|
}
|
|
|
|
return self
|
|
}
|
|
|
|
}
|