- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我的 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 的可能性:
这将直接在界面构建器中更新标签,非常酷并且 xcode 应该默认支持一些东西!
你也可以在 Github 上找到这个: https://github.com/AvdLee/ALLocalizableLabel
关于objective-c - IBInspectable 和 NSLocalizedString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26486123/
我有一个 IBDesignable 类,它具有 IBInspectable 值:Int 值基本上是 IBDesignable 类中显示的球的数量 所以我有一个 setup() 函数,它使用 for _
我想根据我获得的互联网信息设置不同的 IBInspectable 项目。例如,我有用于绿色、红色和橙色圆圈的 IBInspectables。如果请求说绿色,我想将 isGreen inspectabl
我正在玩@IBInspectables。我创建了一个可重用的自定义 View ,其中包含一些 @IBInspectables。 有没有办法让@IBInspectables优先执行? 在以下情况下,修改
我可以在 watchKit 中使用 IBInspectable 吗?当我将一个字符串标记为 IBInspectable 时,我可以在相关的 watchKit App Storyboard中看到并设置它
我正在创建自定义平行四边形 View ,并且 View 使用默认偏移值渲染良好。但是当我从 ib 更改偏移值时它不起作用 @IBDesignable class CustomParallelogram
如何解决这个问题,安装 xcode 9 后告诉我这个 “属性不能标记为@IBInspectable,因为它的类型不能在 Objective-c 中表示” /// The mode of the gra
我创建了很多 IBInspectable。但是今天,我观察到 Xcode 具有这样的一些属性: 在链接中,我标记了矩形框。我想像这样创建自定义 IBInspectable 。我不知道这是否可能。 任何
我将三个属性标记为 IBInspectable,它们运行良好。后来我决定我一直在使用的另外三个属性也可以从 IBInspectable 中受益,所以我也标记了它们。 在标记新的三组之后,之前的三组从
我想添加一个新的 IBInspectable属性(计算属性)到 UILabel通过类别方法。理想情况下,我希望在设置标签文本后设置此属性(通过 setValue:forKey),因为此 IBInspe
是否可以在 Attributes Inspector 中设置浮点值?我的 UIView 中有这个属性: @IBInspectable var scale: CGFloat = 0.90 {
我有一些属性设置为 @IBInspectable,因此我可以在 Interface Builder 中编辑它们,但是在运行时什么时候设置这些属性? 我尝试在初始化期间使用它们,但尚未设置。 这就是我想
简而言之,我想创建一个@IBInspectable 属性,当您在 Storyboard 中时,它允许您从下拉菜单中的项目列表中进行选择。此外,如果有一种方法可以创建分隔线并更好地组织 IBInspec
enum 不是 Interface Builder 定义的运行时属性。以下内容不会显示在 Interface Builder 的属性检查器中: enum StatusShape:Int { c
我想创建 @IBInspectable 元素,如下图所示: 我的想法是使用 enum 之类的东西作为 @IBInspectable 的类型,但看起来情况并非如此,有什么想法如何实现这样的元素吗? 编辑
如果我使用 IBInspectable 调整属性并在 Xcode 上获取实时更新,我是否必须对我选择的值进行硬编码,或者将调整后的值与最终版本一起编译? 我的意思是,假设我使用 IBInspectab
我决定在 swift 中为文本字段编写扩展,并向 UITextField 添加一些功能,例如添加标签、标题、标题方向、自定义颜色、标题自定义字体等。 RTL 语言方向编号(例如电话号码)位于左侧,但标
我们正在将 IBInspectable 实现到一个大型应用程序中,希望允许在 Interface Builder 中设置一些设置以减少我们 View 中的代码量。我对 IBInspectable/IB
我正在尝试使用 IBInspectable 为我的 View 添加边框。 extension UIView { private func getBorder(integer: Int) ->
在我看来,我有大约 50 个属性必须进行检查。 有没有一种方法可以在不为每个人明确声明的情况下这样做? 最佳答案 不幸的是,没有。 @IBDesignable 和 @IBInspectable 必须为
我想在一个巨大的项目中实现深色模式,我不想为每个标签和 View 创建 outlet 以更改颜色,因为你知道这很困难。 我使用@IBInspectable 为 UIView 子类创建了两个颜色选择器作
我是一名优秀的程序员,十分优秀!