dejalbackgroundview

DejalBackgroundView: open source project for Mac to provide a background color and/or border color to a view

Yesterday Brent Simmons posted his first go at using IB_DESIGNABLE and IBInspectable, for a simple NSView subclass to provide a backgroundColor property to a view.

I've had a similar simple class for a while, so that inspired me to push it to GitHub as open source, too. My variation provides four new properties, to set either or both the background and border colors:

  • Adds a drawsBackground BOOL property. Defaults to YES.
  • Adds a drawsBorder BOOL property. Defaults to YES.
  • Adds a backgroundColor NSColor property. Defaults to nil, but lazily assigns a light blue color if not set to another color.
  • Adds a borderColor NSColor property. Defaults to nil, but lazily assigns a light gray color if not set to another color.
  • IB_DESIGNABLE support for all four properties, so they can be set in Interface Builder.

To use it, simply include the DejalBackgroundView.h and DejalBackgroundView.m files in your project, then change a container NSView to DejalBackgroundView in the view hierarchy, and set the colors as desired (via code or IB), e.g.:

self.backgroundView.backgroundColor = [NSColor lightGrayColor];

If you only want a background without a border, easily turn off the border drawing:

self.drawsBorder = NO;

All of these properties can be set in IB thanks to the IB_DESIGNABLE and IBInspectable attributes in Xcode 6.

As a bonus, the view is automatically treated as opaque if the background color is used, and is itself opaque.

This is a very simple class, but quite useful.

You can get the code and more information from the Dejal Open Source page.

(I've been meaning to push out more of my code as open source; I would like to take the time to release more, to give back to the community. Please let me know if you read this and would like to encourage me to do so.)

Syndicate content