5

カスタム @IBDesignable UITextfield クラスを使用すると、ビュー コントローラー (メイン ストーリーボード) ですべてのオブジェクトが消えます。メインストーリーボードは次のようになります。

ここに画像の説明を入力

(Xcode 10、Swift 4.2)
ご覧のとおり、エラーも表示されます。しかし、アプリを実行すると、Xcode に「Build Succeeded」と表示されます。

以下のようなカスタム @IBDesignable UITextfield クラスを使用します。

import UIKit
import AKMaskField

@IBDesignable

class MyTextFieldStyle: AKMaskField {

@IBInspectable var secureEntry : Bool = false

@IBInspectable var myBorderColor : UIColor = UIColor.white {
    didSet {
        self.layer.borderColor = myBorderColor.cgColor
    }
}

@objc func secureButtonPressed (sender: UIButton) {
    self.secureEntry = !self.secureEntry
    self.isSecureTextEntry = self.secureEntry
}

override func awakeFromNib() {
    super.awakeFromNib() 

    if self.secureEntry {

        let btn = UIButton(type: .custom)
        btn.setImage(#imageLiteral(resourceName: "eye-17-glyph-16"), for: .normal)
        btn.addTarget(self, action: #selector(self.secureButtonPressed(sender:)), for: .touchUpInside)
        btn.sizeToFit()

        btn.frame = CGRect(x: self.frame.size.width-(btn.frame.size.width+5), y: (self.frame.size.height-btn.frame.size.height)/2, width: btn.frame.size.width, height: btn.frame.size.height)

        self.addSubview(btn)
    }

    self.layer.borderColor = self.myBorderColor.cgColor
}
}

Xcodeを閉じて開くとうまくいきます。バグのようです。これはうまくいきました。

4

0 に答える 0