如何在Xcode字符串文字中键入下标/上标?

时间:2018-01-15 21:27:32

标签: xcode format editor

我在Xcode编辑器中看到过这段代码:

enter image description here

如何键入具有不同字符位置和字体大小的字符串?

1 个答案:

答案 0 :(得分:0)

使用这些字符串文字,它不是字符位置或字体大小的问题。这些是特殊的unicode superscript/subscript characters。如果您转到macOS键盘首选项并在菜单栏"中选择"显示键盘和表情符号查看器,您将在菜单栏中显示一个新选项"显示表情符号&符号&#34 ;.然后,您可以输入" 2"在搜索框中,您将看到"相关字符中的下标和上标格式"部分:

enter image description here

所以,这不是一般的下标/下标功能,而只是几个普通下标/上标的专用unicode字符(例如" 2"," x"等)

请注意,如果您需要对字体,基线调整等进行更细粒度的控制,许多用户界面控件都支持使用属性字符串,例如:

let bigFont = UIFont.systemFont(ofSize: 20)
let smallFont = UIFont.systemFont(ofSize: 12)

let title = NSMutableAttributedString(string: "foo", attributes: [.font: bigFont])
title.append(NSMutableAttributedString(string: "bar", attributes: [.font: smallFont, .baselineOffset: 10]))

button.setAttributedTitle(title, for: .normal)

产量:

enter image description here

或者,正如in this answer所述,您显然也可以这样做:

let string = "foobar"
let range = NSRange(location: 3, length: 3)
let title = NSMutableAttributedString(string: string)
let superscript = NSAttributedStringKey(rawValue: kCTSuperscriptAttributeName as String)
title.addAttributes([superscript: 1], range: range)  // Use 1 for superscript; use -1 for subscript

但是你的代码片段显然只是使用预定义的unicode上标/下标字符。但是,如果你需要渲染unicode中已经不存在的东西,这些不同的编程方法会很有用。