我尝试在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中,我添加了一个自定义视图,并将其类设置为我的类“MyCustomContol”
控件不会出现在Interfacebuilder中,也不会出现在运行时。
出了什么问题。
答案 0 :(得分:1)
文本字段在IB中不可见,您只能看到NSView
。运行时使用与自定义控件相同的框架添加文本字段。您没有看到它,因为文本字段在自定义控件之外。将文本字段的框架(超视图中的坐标)设置为控件的边界(视图中的坐标)。
答案 1 :(得分:0)
tnx @Willeke
使用:
textfield = NSTextField(frame: NSRect(x: 0, y: 0, width: self.frame.width, height: self.frame.height) )
它有效