You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

UIActivityViewController分享带多空格文本时空格丢失,如何保留?

如何通过UIActivityViewController分享时保留文本中的多个空格?

当使用UIActivityViewController分享带连续多空格的文本(比如Estimate: $400)时,收件方收到的内容会自动把多余空格合并成单个,变成Estimate: $400。下面提供几种可行的解决方法:

方法1:替换普通空格为非换行Unicode空格

把文本里的普通空格替换成非换行空格(Unicode编码\u{00A0}),这种空格不会被邮件或文本工具自动合并。修改代码如下:

@IBAction func shareTextButton(_ sender: UIButton) {
    // 原始带多空格的文本
    let originalText = "Estimate:       $400"
    // 替换普通空格为非换行空格
    let text = originalText.replacingOccurrences(of: " ", with: "\u{00A0}")
    
    let textToShare = [text]
    let activityViewController = UIActivityViewController(activityItems: textToShare, applicationActivities: nil)
    self.present(activityViewController, animated: true, completion: nil)
}

方法2:分享富文本(NSAttributedString)

如果需要更灵活的格式控制,直接分享富文本对象,系统会保留排版细节,包括多空格:

@IBAction func shareTextButton(_ sender: UIButton) {
    let attributedText = NSMutableAttributedString(string: "Estimate:       $400")
    // 可根据需求设置字体、颜色等属性
    attributedText.addAttribute(.font, value: UIFont.systemFont(ofSize: 16), range: NSRange(location: 0, length: attributedText.length))
    
    let textToShare = [attributedText]
    let activityViewController = UIActivityViewController(activityItems: textToShare, applicationActivities: nil)
    self.present(activityViewController, animated: true, completion: nil)
}

方法3:用HTML格式分享

把文本转换成HTML格式,用 表示需要保留的空格,邮件客户端能正确解析这种格式:

@IBAction func shareTextButton(_ sender: UIButton) {
    let originalText = "Estimate:       $400"
    // 替换空格为HTML非换行空格标签
    let htmlText = originalText.replacingOccurrences(of: " ", with: " ")
    let htmlString = "<html><body>\(htmlText)</body></html>"
    
    let textToShare = [htmlString]
    let activityViewController = UIActivityViewController(activityItems: textToShare, applicationActivities: nil)
    self.present(activityViewController, animated: true, completion: nil)
}

内容的提问来源于stack exchange,提问作者nitin67

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 02:25:12