在我的 App 内置的设置中,修改了语言,这时需要让当前界面的文本跟着改变语言。
解决方法是:添加一个观察者,观察 localize 本地语言的通知,然后一有变化就调用自定义的方法执行操作。(而设置中其实是改变了 localize 的语言)
swift
override func viewDidLoad() {
tableForChoose = tableChoose
super.viewDidLoad()
NotificationCenter.default.addObserver(self, selector: #selector(setText), name: NSNotification.Name(LCLLanguageChangeNotification), object: nil)
}
@objc func setText() {
btn_complete?.setTitle("done".localized(), for: .normal)
tableForChoose?.reloadData()
tableForChoose?.selectRow(at: defaultChoose ?? IndexPath(row: 0, section: 0), animated: true, scrollPosition: .middle)
if let cell = tableForChoose?.cellForRow(at: defaultChoose ?? IndexPath(row: 0, section: 0)) {
cell.accessoryType = .checkmark
}
}