Sorry for the long delay in replaying, I wanted to make sure that what I was doing was going to work before I responded. It turns out that Jacob was the closest to the solution that I wanted (though I thank everyone for their suggestions). The one common theme in the suggestions involved overriding drawRect to accomplish laying out my component. My intention was to use IB to layout my component and not have to worry about drawRect at all.

What I ended up with is a class called ProgressViewController that has an IBOutlet NSView* progressView; Within a separate nib I made the File's Owner be of type ProgressViewController and laid out my view. Then I simply connected my view to the File's Owner progressView outlet. Lastly, in ProgressViewController'sinit method I just (as Jacob suggested) load the nib that contains my progress view:
- (id) init {
        if (![super init])
                return nil;
        
        if (progressView == nil) {
                if (![NSBundle loadNibNamed:@"ProgressView" owner:self])
                        NSLog(@"Failed to load ProgressView");
                if (progressView == nil)
                        NSLog(@"progressView is still nil");
        }
        return self;
}


Now whenever I want to create a new view I just create a new ProgressViewController instance and use its getter method (- (NSView*) view;) to access my custom view and add it where I need it.

Thanks again!

Warm regards,
        Michael


On Mar 14, 2008, at 2:43 PM, Jacob Lukas wrote:

Whoops meant to hit "Reply All"

On Mar 14, 2008, at 14:33, Michael Fey wrote:

Hello List!

I am trying to create a custom view class using Interface Builder that I can then instantiate within my code as many times as needed. In this particular case I have a control that I've created that contains a progress bar, two text fields, two buttons, and an image view. I then want to be able to create any number of these components within my source code and add them to another view dynamically.

I'm guessing that this question has been answered before, but my searches have been unsuccessful. If someone could point me in the right direction, that would be a great help. Thanks!

Regards,
        Michael

What about creating this view in a separate nib, and loading it each time you wish to insert it somewhere? Perhaps using +[NSBundle loadNibNamed:owner:]

-Jacob

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/michaelfey%40fruitstandsoftware.com

This email sent to [EMAIL PROTECTED]

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to