在textFieldDidBeginEdit上显示UIView with xib



我用xib做了一个自定义的uiview类,我希望能够用textFieldDidBeginEdit在屏幕上显示它,但我似乎无法弄清楚。

在 myCustomView 中:

required init(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
    //Load the interface
    NSBundle.mainBundle().loadNibNamed("customNib", owner: self, options: nil)
    self.addSubview(self.view)
}

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

我所做的和工作是在 IB 中,我在界面中放置了一个视图并将其链接到我的 customView 类。

现在,我想以编程方式使用自定义类显示此视图。

如果我在我的 textFieldDidBeginEditing 中执行此操作(我的主视图中有一个文本字段(:

var myView: myCustomView = myCustomView(frame:CGRectMake(100, 100, 100, 100))
    myView.backgroundColor = UIColor.redColor()
self.view.addSubview(myView)

我在屏幕上看到一个红色方块,但它不会"加载"xib。

我问的不是好问题还是我做错了什么?你们能把我引向正确的方向吗?

我在这里经历了所有类似的问题,但找不到解决方案。

只是最愚蠢的事情,我用init(frame(初始化了myView,并没有把我的xib放在屏幕上。这有效:

override init(frame: CGRect) {
    super.init(frame: frame)
    NSBundle.mainBundle().loadNibNamed("customNib", owner: self, options: nil)
    self.addSubview(self.view)
}

最新更新