Cocoa 自定义控件不可见

Cocoa Custom Control not visible

我尝试像这样在 Cocoa 中定义自定义控件

@IBDesignable
class MyCustomContol: NSControl
{ var textfield: NSTextField!

  required public init?(coder: NSCoder)
  { super.init(coder: coder)

    textfield = NSTextField(frame: self.frame)  
    textfield.backgroundColor = NSColor.yellow
    textfield.stringValue="DEFAULT"
    self.addSubview(textfield)
  }
}  

在 Interfacebuilder 中,我添加了一个自定义视图并将其 class 设置为我的 class "MyCustomContol"

该控件不会出现在 Interfacebuilder 中,也不会出现在运行时。

出了什么问题。

文本域在 IB 中是不可见的,您只能看到 NSView。运行时您添加与自定义控件具有相同框架的文本字段。您看不到它,因为文本字段在自定义控件之外。将文本字段的框架(父视图中的坐标)设置为控件的边界(视图本身中的坐标)。

tnx @Willeke

与:

textfield = NSTextField(frame: NSRect(x: 0, y: 0, width: self.frame.width, height: self.frame.height) )

有效