有没有办法在启动屏幕的 UILabel 中使用不间断空格?

Is there a way to use non-breaking spaces in a UILabel in a launch screen?

我想确保启动屏幕上多行版权字符串中的名称不会在不同设备上被换行符分割。在带有 UILabel 出口 textLabel 的视图控制器中,转义序列 "\u{00a0}" 以编程方式工作:

textLabel.text = "Lots of text before... Firstname\u{00a0}Lastname... and after."

它显示转义序列被 space 替换的字符串,两边的单词总是出现在同一行。

但是,我无法通过将其作为 Interface Builder 中的 UILabel 中的值放入它来使其工作 - 无论是在 LaunchScreen 中还是在任何其他视图控制器中。它只显示带有键入代码的字符串。我已经尝试了几个 SO 问题中建议的 \u、\U、\\u、\\U、\x+ 等的所有各种组合,但均无济于事。我认为以编程方式干预启动屏幕的显示是不可能的。

我是不是漏掉了什么?

不要在您输入故事板的文本中使用 \u{00a0}。输入实际的不间断 space。最简单的方法是输入 ⌥-space (option-space).

如果您需要输入任何其他特殊字符,另一种选择是使用标准字符查看器。 Select 编辑菜单中的表情符号和符号以调出角色查看器。然后找到您希望放入标签中的所需字符。您也可以在 Swift 代码中执行此操作,而不是在字符串中键入神秘的 Unicode 转义序列。