I have dozens of subclassed controls
class C1 : NSView {
vareventDelegate : myDelegate
... other stuff ...
}
class S1 : NSSlider {
var eventDelegate : myDelegate
... other stuff ...
}
Adding these to the base window works fine using a method like this
public func addToView(_ parent:NSView?) {
parent!.addSubview(self)
self.eventDelegate = parent!.window as? dsCONTROLDELEGATE
}
HOWEVER adding them to a TabPanel/Pagepanel is more difficult
adding the control itself is easy
class myTab : NSTabView {
public func addToPanel(panel:Int,control:NSView) {
self.tabViewItem(at: panel).view?.addSubview(control)
/* here is where the problem lies
Using NSView allows me to add the control to the view
BUT, it has no idea what "eventdelegate" is
and using **let temp: AnyClass? = control.superclass** doesn't help
basically this routine needs to accept ANY control type and know it has a eventDelegate parameter
*/
???.eventDelegate = self.window as? dsCONTROLDELEGATE
}
}
var tView : myTab()
var myC1 : C1()
var myS1 : S1()
tView.addToPanel(panel:0,control:c1)
tView.addToPanel(panel0:control:s1)
note ALL controls end up pointing their eventdelegate back to the NSWindow that ultimately hosts the control. So a control on a TabPanel, does not delegate to the panel, but to the window itself