gpt4 book ai didi

objective-c - IBInspectable 和 NSLocalizedString

转载 作者:太空狗 更新时间:2023-10-30 03:30:48 24 4
gpt4 key购买 nike

我的 Localizable.strings 文件中写有很多本地化文本,我正在寻找一种方法来使用这些文本并将它们显示在界面构建器中。也就是说,我不想为我的所有 View 创建 socket 并在代码中设置文本,而是想制作一个 IB_DESIGNABLE UILabel 子类,它必须访问我的 Localizable.strings 文件,然后直接显示本地化文本在界面生成器上。

问题是,NSLocalizedString 不会在界面生成器中给出任何结果,只有当我实际运行代码时才会给出结果。有没有办法告诉界面构建器使用哪个文件进行本地化(例如在 prepareForInterfaceBuilder 中)?

最佳答案

感谢 JRV 的回答,我终于修好了这个类(class):

@IBDesignable class ALLocalizableLabel: UILabel {

@IBInspectable var localizeString:String = "" {
didSet {
#if TARGET_INTERFACE_BUILDER
var bundle = NSBundle(forClass: self.dynamicType)
self.text = bundle.localizedStringForKey(self.localizeString, value:"", table: nil)
#else
self.text = NSLocalizedString(self.localizeString, comment:"");
#endif
}
}

}

这创造了在界面构建器中设置 key 的可能性:

Localized string set in interface builder

这将直接在界面构建器中更新标签,非常酷并且 xcode 应该默认支持一些东西!

你也可以在 Github 上找到这个: https://github.com/AvdLee/ALLocalizableLabel

关于objective-c - IBInspectable 和 NSLocalizedString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26486123/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com