我为textField
设置了不同的字体,它运行正常。我可以通过这种方式输入古吉拉特语字体textField
,我设置字体:
但是当我尝试打印用户的文字时,它会打印英文字母。假设我像textField
一样进入અબચ
,但它会将Optional("abc")
打印到控制台中,所以我尝试使用attributedString
,但它给了我相同的结果,下面是我的代码:
if let font = UIFont(name: "HARIKRISHNA", size: 16) {
let attributedString = NSMutableAttributedString(string: userText!, attributes: [NSFontAttributeName : font])
print(attributedString.string)
} else {
// The font "Raleway-SemiBold" is not found
print("The font Raleway-SemiBold is not found")
}
有没有办法用textField
的相同语言记录输出?
Sample了解更多信息。
答案 0 :(得分:1)
Xcode控制台窗口使用可在Xcode中更改的字体
首选项,但不是在运行时以编程方式。
print()
函数写入了“文本表示”
给出论点。对于String
,这只是字符串本身:
print(textF.text!)
// Output:
abc
对于属性字符串,文本表示是描述 包含字符串和属性:
print(textF.attributedText!)
// Output:
abc{
NSColor = "UIDeviceRGBColorSpace 0 0 0 1";
NSFont = "<UICTFont: 0x7fa6984241f0> font-family: \"HARIKRISHNA\"; font-weight: normal; font-style: normal; font-size: 14.00pt";
NSParagraphStyle = "Alignment 4, LineSpacing 0, ParagraphSpacing 0, ParagraphSpacingBefore 0, HeadIndent 0, TailIndent 0, FirstLineHeadIndent 0, LineHeight 0/0, LineHeightMultiple 0, LineBreakMode 2, Tabs (\n 28L,\n 56L,\n 84L,\n 112L,\n 140L,\n 168L,\n 196L,\n 224L,\n 252L,\n 280L,\n 308L,\n 336L\n), DefaultTabInterval 0, Blocks (\n), Lists (\n), BaseWritingDirection 0, HyphenationFactor 0, TighteningForTruncation NO, HeaderLevel 0";
NSShadow = "NSShadow {0, -1} color = {(null)}";
}
您的实际问题似乎与众不同。分配一个特殊的 字体到文本字段只会改变字符串的外观, 不是字符串本身的字符。
因此,如果用户输入"abc"
,那么textF.text
即"abc"
,即使您
有一个显示的字体为"અબચ"
。因此匹配
"અબચ"
的字符串无效。
我没有使用古吉拉特语来提出好的经验 解。知道你可以“音译”可能会很有趣 拉丁字母的外语(来自http://nshipster.com/cfstringtransform/):
let text = "અબચ" as NSMutableString
CFStringTransform(text, nil, kCFStringTransformToLatin, false)
print(text)
结果是“abaca”,因为
અ = GUARATI LETTER A
બ = GUARATI LETTER BA
ચ = GUARATI LETTER CA
但我不知道这对你的实际应用是否有帮助。