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) )
有效
我尝试像这样在 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) )
有效