如何使用 Swift 中的自动生成键从情节提要中设置的 UITextView 中检索文本?

Posted

技术标签:

【中文标题】如何使用 Swift 中的自动生成键从情节提要中设置的 UITextView 中检索文本?【英文标题】:How to retrieve text from UITextView set in storyboard using auto generated key in Swift? 【发布时间】:2021-05-27 15:03:13 【问题描述】:

我有一个类似这样的目录结构

MyApp
|-ExternalFrameworks
|-MyApp
|-Storyboards
| |
| |-Dashboard.storyboard
| |-News.storyboard
| |-Social.storyboard
| | |
| | |-Social.strings(English)
| | |-Social.strings(French)

假设自动生成的字符串是“hn8-xyz”,在 .strings 文件中有一些键。 我需要提取与键关联的值字符串。

我找到了提取字符串的方法

NSLocalizedString(key: String, tableName: String?, bundle: Bundle, value: String, comment: String)

我无法弄清楚的是,如何根据我的 dir 结构在此方法中分配 bundle 属性? 我主要是一个 java 开发者,而不是一个 ios 人,但我有这个修复要做。请原谅我没有按照 Swift 术语来构建问题。

如果需要更多信息来回答问题,请告诉我。

【问题讨论】:

【参考方案1】:

对于大多数应用,您只有一个捆绑包,即主捆绑包。如果你看一下函数的声明:

func NSLocalizedString(_ key: String, tableName: String? = nil, bundle: Bundle = Bundle.main, value: String = "", comment: String) -> String

bundle 参数的默认值为Bundle.main。您可能完全可以跳过该参数。

【讨论】:

我试过了。 Bundle.main 没有抛出错误。但它没有选择相关密钥的文本。相反,它只是显示参数中给出的替代文本。 那么字符串在哪里呢?您可能想要检查您的 .app 目标并查看字符串的位置。 字符串按照我展示的目录结构定位。它们位于文件 Social.strings(英语)和 Social.strings(法国)中。我使用了类似 NSLocalizedString("hn8-xyz" , tableName: "Social.strings", value: "dummy", comment: "Dummy comment") 的方法。我在 iPhone 屏幕上打印了虚拟内容,而不是与文件中的键关联的文本。 .app 目标是什么意思?目标是 iPhone。我是 iOS 的菜鸟,所以请多多包涵。

以上是关于如何使用 Swift 中的自动生成键从情节提要中设置的 UITextView 中检索文本?的主要内容,如果未能解决你的问题,请参考以下文章

UIView 子类在 Swift 中设置自己的高度 + UIViewController 中的约束 + 情节提要

iOS8 在情节提要中设置弹出框大小

Swift如何引用不在情节提要的* .xcassets文件夹中的图像文件

如何在 swift 中从情节提要中的 didSelectRowAt indexPath 打开视图标签栏控制器?

使用自动布局时标签不会调整大小,情节提要中的约束

如何使用 swift 使用带有 spriteKit 的情节提要