Objective C 扩展中使用 IBInspectable setter 的 StoryBoard 本地化

StoryBoard Localization with IBInspectable setter in Objective C Extensions

根据 this blog post,您可以在 swift 中使用 IBInspectable 扩展来本地化故事板。我们可以单独依赖 Localizable.strings 文件,而不是拥有本地化的故事板和担心字符串的多个文件。

所以我的问题是如何实现与 objective c 相同的效果?如果答案不可能,那么将所有 UI 面向字符串保存在一个文件中并获取它的最佳方法是什么。

您知道您可以像在 Swift 中一样使用 Objective-C 中的这些扩展名吗? 无论如何,要在 Objective-C 中做同样的事情,您只需创建具有 IBInspectable 属性的类别。

@interface UILabel(LocalizationUtils)
@property (nonatomic, weak) IBInspectable NSString *localizedText;
@end

@implementation UILabel(LocalizationUtils)

- (void)setLocalizedText:(NSString*)localizedText {
    self.text = NSLocalizedString(localizedText, @"");
}

- (NSString*)localizedText {
    return @"";
}

@end