Tôi muốn có được các khoảng trống màu trắng ở phía trước và ở cuối NSAttributedString của tôi (Cắt nó). Tôi không thể chỉ đơn giản là chuyển đổi nó thành chuỗi và làm trang trí vì có hình ảnh (file đính kèm) trong đó. Tôi có thể làm như thế nào?Swift NSAttributedString Trim
Trả lời
Tạo phần mở rộng NSAttributedString
như bên dưới.
extension NSAttributedString {
public func attributedStringByTrimmingCharacterSet(charSet: NSCharacterSet) -> NSAttributedString {
let modifiedString = NSMutableAttributedString(attributedString: self)
modifiedString.trimCharactersInSet(charSet)
return NSAttributedString(attributedString: modifiedString)
}
}
extension NSMutableAttributedString {
public func trimCharactersInSet(charSet: NSCharacterSet) {
var range = (string as NSString).rangeOfCharacterFromSet(charSet)
// Trim leading characters from character set.
while range.length != 0 && range.location == 0 {
replaceCharactersInRange(range, withString: "")
range = (string as NSString).rangeOfCharacterFromSet(charSet)
}
// Trim trailing characters from character set.
range = (string as NSString).rangeOfCharacterFromSet(charSet, options: .BackwardsSearch)
while range.length != 0 && NSMaxRange(range) == length {
replaceCharactersInRange(range, withString: "")
range = (string as NSString).rangeOfCharacterFromSet(charSet, options: .BackwardsSearch)
}
}
}
và sử dụng trong chế độ xemBộ điều khiển nơi bạn muốn sử dụng. như thế này
let attstring = NSAttributedString(string: "this is test message. Please wait. ")
let result = attstring.attributedStringByTrimmingCharacterSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
Thx, đây là những gì tôi muốn !!!! –
Chào mừng bạn :) –
Giải pháp tuyệt vời :) – chrysAllwood
Mã sau sẽ hoạt động theo yêu cầu của bạn.
var attString: NSAttributedString = NSAttributedString(string: " this is att string")
let trimmedString = attString.string.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet())
Làm cách nào để tôi nhận được dải ô? –
thử mã được đề cập ở trên để xóa không gian trước và cuối khỏi chuỗi được phân bổ. – macpandit
Mã trên hoạt động tốt. nhưng nó sẽ trả về cho bạn 'String' không phải' NSAttributedString'. bạn chỉ cần chuyển 'String' thành' NSAttributedString'. tốt đẹp hai dòng mã. –
tôi đã nhanh chóng 3 thực hiện, chỉ trong trường hợp có ai quan tâm:
/**
Trim an attributed string. Can for example be used to remove all leading and trailing spaces and line breaks.
*/
public func attributedStringByTrimmingCharactersInSet(set: CharacterSet) -> NSAttributedString {
let invertedSet = set.inverted
let rangeFromStart = string.rangeOfCharacter(from: invertedSet)
let rangeFromEnd = string.rangeOfCharacter(from: invertedSet, options: .backwards)
if let startLocation = rangeFromStart?.upperBound, let endLocation = rangeFromEnd?.lowerBound {
let location = string.distance(from: string.startIndex, to: startLocation) - 1
let length = string.distance(from: startLocation, to: endLocation) + 2
let newRange = NSRange(location: location, length: length)
return self.attributedSubstring(from: newRange)
} else {
return NSAttributedString()
}
}
Swift 3.2 Version:
extension NSAttributedString {
public func trimmingCharacters(in characterSet: CharacterSet) -> NSAttributedString {
let modifiedString = NSMutableAttributedString(attributedString: self)
modifiedString.trimCharacters(in: characterSet)
return NSAttributedString(attributedString: modifiedString)
}
}
extension NSMutableAttributedString {
public func trimCharacters(in characterSet: CharacterSet) {
var range = (string as NSString).rangeOfCharacter(from: characterSet)
// Trim leading characters from character set.
while range.length != 0 && range.location == 0 {
replaceCharacters(in: range, with: "")
range = (string as NSString).rangeOfCharacter(from: characterSet)
}
// Trim trailing characters from character set.
range = (string as NSString).rangeOfCharacter(from: characterSet, options: .backwards)
while range.length != 0 && NSMaxRange(range) == length {
replaceCharacters(in: range, with: "")
range = (string as NSString).rangeOfCharacter(from: characterSet, options: .backwards)
}
}
}
- 1. Thêm NSUnderlineStyle.PatternDash vào NSAttributedString trong Swift?
- 2. IE8 và JQuery trim()
- 3. string.IsNullOrEmpty sử dụng Trim()
- 4. Trim HTML trống thẻ
- 5. TRIM RTRIM Hiệu suất LTRIM
- 6. Trim một chuỗi trong C
- 7. trim địa chỉ ip octet
- 8. NSAttributedString '\ n' bỏ qua
- 9. HTML từ NSAttributedString
- 10. Thả nắp bằng NSAttributedString
- 11. Latex để NSAttributedString?
- 12. NSAttributedString với các tab
- 13. NSAttributedString với strikethrough
- 14. Cách đặtHighlightedTextColor @ NSAttributedString
- 15. NSAttributedString mới multiline
- 16. Sao chép NSAttributedString trong UIPasteBoard
- 17. .Trim() khi chuỗi rỗng hoặc rỗng
- 18. tít Trim để Từ gần nhất
- 19. Cách sử dụng hàm trim() của jQuery
- 20. Thay đổi màu nền trên NSAttributedString
- 21. Multiline NSAttributedString cho chiều cao sai?
- 22. Biến NSAttributedString thành văn bản thuần túy
- 23. Xử lý UIContentSizeCategoryDidChangeNotification cho NSAttributedString trong UITextView
- 24. Cắt đuôi đuôi NSAttributedString trong UILabel
- 25. Hình ảnh mờ (NSTextAttachment) trên NSAttributedString
- 26. Swift 4 attributedString get gõ thuộc tính
- 27. Điểm kiểm soát Amazon KCL và Trim Horizon
- 28. Trim cuối cùng "" delimiter của một chuỗi trong VB.NET
- 29. Bất kỳ cách nào tốt hơn để TRIM() sau string.Split()?
- 30. làm thế nào để TRIM một khối trên đĩa SSD?
https://github.com/ovenbits/ Alexandria/blob/master/Sources/NSAttributedString% 2BExtensions.swift? Nếu bạn tìm NSAttributedString và Trim trong Công cụ Tìm kiếm, bạn có một số giải pháp, chúng không hoạt động? – Larme
cảm ơn Larme, dự án github này thực sự hữu ích! –