• 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
NSCollectionViewItem & Its View
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

NSCollectionViewItem & Its View


  • Subject: NSCollectionViewItem & Its View
  • From: "I. Savant" <email@hidden>
  • Date: Sat, 3 Nov 2007 20:48:15 -0400

List:

I'm hoping someone can clarify something for me. I'm using the NSCollectionView/NSCollectionViewItem classes in a pet project of mine. The project is "garbage collection required". The item's designated view is a simple NSView subclass that has two properties defined as:

BOOL connected;
NSColor * statusColor;

I dutifully initialized the statusColor and connected ivars in the view's -initWithFrame: method (to "NO" and "[NSColor redColor]", respectively). A strange thing happens, however, when -drawRect: is called. Most of my custom drawing shows up just fine (for the background) but the statusColor ivar is nil. Also, if I change the initialization to set the "connected" ivar to "YES", this value is ignored (it evaluates to "NO");

I discovered -initWithFrame: is never called. Okay, so I moved the code to -awakeFromNib, which is called once, but I get the same results - my ivars appear uninitialized when used in -drawRect: ...

My first suspicion was there was something about garbage collection that I do not understand but the view draws fine if I instantiate one of them in a separate window that stays on-screen. I've also been using GC in plenty of other classes with the exact same patterns. It's only happening when used by a collection view item.

That lead me to suspect something is 'different' about how the collection view / item handles its views (since the "prototype view" theoretically is copied). Maybe it calls -init and not -initWithFrame: (odd, but worth a shot). Nope. Never called. Nor is -copy: ...

I thought maybe the prototype view itself should just be a NSView. I enclosed all the controls in a subview and made *that* my subclass (turning the prototype view back into a stock NSView). No luck.

The documentation is still rather sparse (I know Scott and mmalc, you guys had a lot to write for Leopard and detail will take time) so beyond the basics, I can't see any explanation for this behavior. I'm sure I'm missing something obvious but damned if I know what it is. Any ideas?

--
I.S.



_______________________________________________

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: NSCollectionViewItem & Its View
      • From: "Doug Penny" <email@hidden>
  • Prev by Date: Re: Garbage collection, core data, and tight loops
  • Next by Date: Re: Why initialize the menubar without Interface Builder
  • Previous by thread: SenTesttingKit.framework runtime failure
  • Next by thread: Re: NSCollectionViewItem & Its View
  • Index(es):
    • Date
    • Thread