在我的 App 内置的设置中,修改了语言,这时需要让当前界面的文本跟着改变语言。
解决方法是:添加一个观察者,观察 localize 本地语言的通知,然后一有变化就调用自定义的方法执行操作。(而设置中其实是改变了 localize 的语言)
override func viewDidLoad() {tableForChoose = tableChoosesuper.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}
}