官方推荐的我就不说了,介绍下我如何做的。
子类化所有base UI控件,让我们实际创建的类继承自base UI,在willMoveToSuperview: 方法重新代码设置本地化。如
#import "XLTextView.h"
@implementation XLTextView
- (void)willMoveToSuperview:(UIView *)newSuperview
{
[super willMoveToSuperview:newSuperview];
self.text = NSLocalizedString(self.text, nil);
}
/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect {
// Drawing code
}
*/
@end
之后就在SB里用这个类就行了。
缺点是需要继承。需要子类化所有bese UI。如果是闭源SDK UI控件不方便继承之能拖拉对象,自行处理了。
我曾想过用方法调试来处理本地化,但是这个黑魔法都建议在initialize方法处理。所以不太合适。如果有其他方法欢迎提出来。