In IB, put 2 custom views into one window. I don’t see any way to give them separate names. In Inspector-Info I had to use the same name, the class name, for both of them in the drop-down menu. I tried
DrawRect: NSRect bounds = [self bounds];
[[NSColor greenColor] set];
[NSBezierPath fillRect:bounds];
which filled both custom views with green. But I would like to fill, draw, etc. independently in each custom view. How can I address each view separately? Multiple custom views, later. Or does Cocoa require only one view per class?
This is probably trivial, but Google and the similar questions list here didn’t come up with anything close. There’s a lot of about multiple view controllers, but I don’t need to switch views.
IB will show you the names of the classes that you can assign to an object. If you have only one custom class (eg. “myCustomClass”) then it will only show that one in the drop-down menu.
I think the best solution to your problem, if you want tu use only one class, is to put the drawing code in two separate functions and assign each view an IBOutlet, then call the function from the controller class.
You have to add the following two lines to your controller’s interface
And you have to set each view’s color.
This will set it when it loads for the first time.
This way each view will be coloured differently.
An alternative solution would be to create two separate custom classes (eg. “myCustomClass1” and “myCustomClass2”) which would have their own drawing code…