• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Overlapping Views
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Overlapping Views


  • Subject: Re: Overlapping Views
  • From: Ricky Sharp <email@hidden>
  • Date: Fri, 23 Nov 2007 11:16:11 -0600


On Nov 23, 2007, at 11:03 AM, David Alger wrote:


On Nov 23, 2007, at 10:01 AM, Alastair Houghton wrote:

On 23 Nov 2007, at 07:09, Jon Hess wrote:

NSView fully supports overlapping sibling views on Leopard and later.

I know it's been a common request for ages on the list, but I've never quite been sure why people are so keen on being able to have overlapping sibling views. If one is completely contained within the other, the parent-child relationship seems cleaner (and has always worked); and if that isn't possible then surely in most cases it's going to look ugly?


So, out of interest, David, what were you trying to achieve that needed overlapping views?

This particular app would be a full-screen app. The main window, covering most if not all of the screen, would have a background image with other controls directly on top of it. They would be customized to the extent I could in IB & sub-classed if necessary, which I know that I will have to do to achieve the behavior & appearance I want in some. Since the NSImage view doesn't support sub-views (I'm assuming it doesn't since IB won't let me put any in it), I was trying to have the NSImage view behind the other views so I wouldn't have to customize a NSView & draw the image manually.


This will be my very first app written in Cocoa/Obj-C, and I'm very used to having compositing views in Carbon. I won't be overlapping views like this though if it isn't really supported, since I don't want my app to possibly have erratic drawing/refresh behavior.

In this specific case, it is trivial to do what you want with subviews.

Drag in a custom view which will serve as your background view. IB knows that custom views are contain views and thus you can put anything you want inside. Subclass NSView and specify that class for your custom view. It's drawRect: will draw whatever image you want.

Building upon that, you could always put your NSView subclass into an IB Plug-In (if using IB 3.x) or a palette (IB 2.x). That's the approach I went with. I thus had a container view with a single 'background image' attribute that I could set at design time within IB. IB also displayed the selected image to include when running under the simulator.

___________________________________________________________
Ricky A. Sharp         mailto:email@hidden
Instant Interactive(tm)   http://www.instantinteractive.com

_______________________________________________

Cocoa-dev mailing list (email@hidden)

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:
This email sent to email@hidden


  • Follow-Ups:
    • Re: Overlapping Views
      • From: Uli Kusterer <email@hidden>
References: 
 >Overlapping Views (From: David Alger <email@hidden>)
 >Re: Overlapping Views (From: Jon Hess <email@hidden>)
 >Re: Overlapping Views (From: Alastair Houghton <email@hidden>)
 >Re: Overlapping Views (From: David Alger <email@hidden>)

  • Prev by Date: Re: With What does Apple Swizzle the IsA-pointer in KVO?
  • Next by Date: Re: Overlapping Views
  • Previous by thread: Re: Overlapping Views
  • Next by thread: Re: Overlapping Views
  • Index(es):
    • Date
    • Thread