使用Objective C Extensions中的IBInspectable setter进行StoryBoard本地化

时间:2015-09-09 10:12:52

标签: ios objective-c uistoryboard xcode-storyboard localizable.strings

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

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

1 个答案:

答案 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