• 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
Fighting NSCollectionView for first Responder
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Fighting NSCollectionView for first Responder


  • Subject: Fighting NSCollectionView for first Responder
  • From: Daniel Vollmer <email@hidden>
  • Date: Thu, 22 May 2008 17:27:03 +0200

Hi all,

I have an NSCollectionView in whose item-views I want to do some event handling (validateMenuItem: to enable / disable the events that currently make sense and a bit of keyboard / mouse input), but I'd also like the NSCollectionView to handle the selection of items.
So I pass the mouseDown event to [super mouseDown] so that it eventually reaches the NSCollectionView so it can handle updating the selection. This makes the item-view lose firstResponder and my event handling ambitions are foiled. Now, I make the item-view firstResponder again in its "setSelected" setter (which is bound to the representedItem.selected property, so it gets called after the NSCollectionView handles the selection).
Unfortunately, if I add a new item to the NSCollectionView (via its NSArrayController), I once again lose first responder* and I have no idea how to regain it, so my event handling / keyboard shortcuts work properly again...


* backtrace for who causes my item-view to lose firstResponder:
#1 0x95f9a355 in -[NSWindow makeFirstResponder:] ()
#2 0x964e4625 in _NSDiscardEditingForView ()
#3 0x9657ea69 in -[NSCollectionView _contentChanged:regenerate:] ()
#4 0x9657b2c5 in -[NSCollectionView setContent:] ()
#5 0x965651b2 in -[NSCollectionViewBinder _updateContent] ()
#6 0x96565260 in -[NSCollectionViewBinder _observeValueForKeyPath:ofObject:context:] ()
#7 0x93b9358e in NSKVONotify ()
#8 0x93b23e45 in -[NSObject(NSKeyValueObservingPrivate) _notifyObserversForKeyPath:change:] ()
#9 0x95e9e15e in -[NSController _notifyObserversForKeyPath:change:] ()
#10 0x95e9e05f in -[NSController didChangeValueForKey:] ()
#11 0x960b9e88 in -[NSArrayController didChangeValuesForArrangedKeys:objectKeys:indexKeys:] ()
#12 0x960b9999 in -[NSArrayController _insertObject:atArrangedObjectIndex:objectHandler:] ()
#13 0x960b96e2 in -[NSArrayController insertObject:atArrangedObjectIndex:] ()
#14 0x960b9406 in -[NSArrayController addObject:] ()


The new firstResponder after the above "incident" is my main window. :(

Any insight? Or is there a different way of handling things?


Thanks, Daniel. _______________________________________________

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


  • Prev by Date: Re: PMSessionEndDocumentNoDialog error code -43
  • Next by Date: Re: Trying to understand -- please help...
  • Previous by thread: Re: Newbie query re default buttons
  • Next by thread: Application rights.
  • Index(es):
    • Date
    • Thread