Ich versuche eine Erweiterung für alle UIButton-Unterklassen zu machen, die es mir erlauben, einen Schlüssel in den Xcode UIBuilder einzugeben, und diesen Schlüssel automatisch in die richtige Sprache zu ändern Bauzeit.UIButton mit @IBinspectable für die Lokalisierung in Swift/Xcode
Es funktioniert gut, wenn ich die App ausführen, aber das Schlüsselwort, das ich in den Builder eintippe, ist nicht in der Benutzeroberfläche lokalisiert.
Ich habe versucht, #if Builder-Anweisungen und PrepareForInterfaceBuilder(). Das ist, was ich bisher habe:
extension UIButton {
@IBInspectable var localizedText: String {
set (key) {
self.setTitle(key.localized, for: .normal)
}
get {
return (self.titleLabel?.text)!
}
}
}
und
class Button: UIButton {
.
.
.
override func prepareForInterfaceBuilder() {
super.prepareForInterfaceBuilder()
self.titleLabel?.text = localizedText
}
}
Jede mögliche Hilfe würde geschätzt!
ich vergaß zu sagen .localized ist ein String-Erweiterung, die NSLocalizedString auf sich selbst aufruft und gibt das Ergebnis. Der einzige Unterschied zwischen unserem Code ist, dass Sie "" zurückgeben und Sie newValue als Variable verwenden. Ich versuche, den im Builder festgelegten Wert als newValue zu verwenden. –
Also funktioniert deine String Extension hier nicht ??? Weil ich dieses benutzt habe, funktioniert es bis jetzt für mich .. – Bilal
Ich habe die Antwort mit Zeichenkettenverlängerung aktualisiert ... Ich prüfte es auch, bevor es bekanntgab ... – Bilal