控制台打印不同的文本字体 swift
Console printing different text font swift
我已经为我的 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 了解更多信息。
Xcode 控制台 window 使用的字体可以在 Xcode
首选项,但不是在运行时以编程方式。
print()
函数写入一个 "textual representation"
给出的参数。对于 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"
,即使你
有一个 显示 的字体 "અબચ"
。因此匹配那个
针对 "અબચ"
的字符串无法工作。
我没有古吉拉特语的经验,无法提出好的建议
解决方案。知道您可以 "transliterate" 可能会很有趣
外语到拉丁字母表(来自 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
但我不知道这对你的实际应用是否有帮助。
我已经为我的 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 了解更多信息。
Xcode 控制台 window 使用的字体可以在 Xcode
首选项,但不是在运行时以编程方式。
print()
函数写入一个 "textual representation"
给出的参数。对于 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"
,即使你
有一个 显示 的字体 "અબચ"
。因此匹配那个
针对 "અબચ"
的字符串无法工作。
我没有古吉拉特语的经验,无法提出好的建议 解决方案。知道您可以 "transliterate" 可能会很有趣 外语到拉丁字母表(来自 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
但我不知道这对你的实际应用是否有帮助。