根据this blog post,您可以使用swift中的IBInspectable扩展来本地化故事板。我们可以单独依赖Localizable.strings文件而不是本地化的故事板,并担心字符串的多个文件。
所以我的问题是如何用目标c实现相同的目标?如果答案不可能,那么将所有面向UI的字符串保存在一个文件中并获取它的最佳方法是什么。
答案 0 :(得分:4)
您是否知道可以像使用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