4

Interface Builder でライブ レンダリングを使用して、UIButtons のローカライズ可能なクラスを実装しようとしています。これは私がこれまでに持っているコードです:

@IBDesignable class TIFLocalizableButton: UIButton {

    @IBInspectable var localizeString:String = "" {
        didSet {
            #if TARGET_INTERFACE_BUILDER
                var bundle = NSBundle(forClass: self.dynamicType)
                self.setTitle(bundle.localizedStringForKey(self.localizeString, value:"", table: nil), forState: UIControlState.Normal)
            #else
                self.setTitle(self.localizeString.localized(), forState: UIControlState.Normal)
            #endif
        }
    }

}

レイアウトは IB で正しく更新されていますが、テキストが表示されません。動作する UILabel で同じ実装を作成しました: https://github.com/AvdLee/ALLocalizableLabel

これを修正する方法についてのアイデアは大歓迎です!

4

3 に答える 3

3

UIButton タイプはカスタムである必要があり、setTitle は機能します

于 2017-01-03T11:50:52.777 に答える