gpt4 book ai didi

ios - Exc_Bad_Access 从 Xib 加载 CustomView 时

转载 作者:行者123 更新时间:2023-11-28 06:07:17 25 4
gpt4 key购买 nike

CustomView 中的 IBOutlets 为 nil。

我已经创建了自定义 View (xib)。

请查找图片以获取更多信息。

class TextFieldView: UIView {

@IBOutlet var contentView: TextFieldView!
@IBOutlet weak var customTextField: UITextField!
@IBOutlet weak var rightButton: UIButton!
@IBOutlet weak var placeHolderLabel: UILabel!

override init(frame: CGRect) {
super.init(frame: frame)
commonInit()
}

required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
commonInit()
}

override func awakeFromNib() {
super.awakeFromNib()
}

func commonInit()
{
let bundle = Bundle(for: type(of: self))
bundle.loadNibNamed("TextFieldView", owner: self, options: nil)
customTextField.backgroundColor = UIColor.green
NSLog("Called")
}

仍然抛出 exc_bad_access 错误。(在 loadNibNamed 代码行中)

最佳答案

Swift 3 版本

这是对我有用的解决方案。确保您在 IB 中的文件对象已分配给它的 TextFieldView 类(而不是 UIView 本身)。还要确保您所有的 IBOutlets 都连接到正确的位置,否则您可能会遇到麻烦。

class TextFieldView: UIView {

@IBOutlet var contentView: TextFieldView!
@IBOutlet weak var customTextField: UITextField!
@IBOutlet weak var rightButton: UIButton!
@IBOutlet weak var placeHolderLabel: UILabel!


override init (frame: CGRect) {
super.init(frame: frame)

commonInit()
}

//This lets us use TextFieldView in IB
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
commonInit()
}

private func commonInit() {

Bundle(for: TextFieldView.self).loadNibNamed("TextFieldView", owner: self, options: nil)
//Positioning content so it fills view space
contentView.frame = self.bounds
contentView.autoresizingMask = [.flexibleHeight, .flexibleWidth]
addSubview(contentView)
}

关于ios - Exc_Bad_Access 从 Xib 加载 CustomView 时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47845279/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com