自从在Xcode 11 GM中打开项目以来,我遇到了一个分组的UITableView无法在我的设置控制器中本地化的问题。
我使用可本地化的字符串并检查所有ObjectId是否正确。它适用于Xcode 10和iOS 12 SDK。奇怪的是,本地化在应用程序的其他任何地方都有效。只是一个TableView。
有人有什么想法吗?我什至尝试删除本地化并再次添加。
更新:该问题似乎已在Xcode 11.2中修复
-
现在,在Xcode 11.1 GM的发行说明中已将其视为一个问题。
故事板和XIB文件中的UITableViewCell标签在运行时不使用字符串文件中的本地化字符串值。(52839404)
https://developer.apple.com/documentation/xcode_release_notes/xcode_11_1_release_notes/
Xcode 11 GM遇到了同样的问题。就我而言,静态UITableViewCell中标题UILabel的本地化字符串未应用。
这是我的解决方法;
手动使用情节提要将标签的“对象ID”复制到“辅助功能标识符”中。
在UITableViewDataSource类中实现以下代码。
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = super.tableView(tableView, cellForRowAt: indexPath) if let label = cell.textLabel, let id = label.accessibilityIdentifier, id.count > 0 { let key = id + ".text" let localizedString = NSLocalizedString(key, tableName: "Main", comment: "") if key != localizedString { label.text = localizedString } } return cell }