Switch to using maptables to track some metadata bout items so that we can match items up when we need to find them by indexPath or point. Remove uneeded ivar from layout. Add call to delegate when selecting item

This commit is contained in:
Gregory John Casamento 2022-09-20 05:02:10 -04:00
parent bf3ddc8cad
commit 2bec53bf0f
4 changed files with 27 additions and 12 deletions

View file

@ -28,11 +28,11 @@
#import "GSFastEnumeration.h"
@interface NSCollectionView (__NSCollectionViewLayout__)
- (NSDictionary *) itemsToAttributes;
- (NSMapTable *) itemsToAttributes;
@end
@implementation NSCollectionView (__NSCollectionViewLayout__)
- (NSDictionary *) itemsToAttributes
- (NSMapTable *) itemsToAttributes
{
return _itemsToAttributes;
}
@ -249,7 +249,7 @@
// Initializers
- (void) _initDefaults
{
_itemsToAttributes = [[NSMutableDictionary alloc] init];
// _itemsToAttributes = [[NSMutableDictionary alloc] init];
}
- (void)invalidateLayout
@ -311,7 +311,7 @@
{
NSMutableArray *result = [NSMutableArray array];
NSArray *items = [_collectionView visibleItems];
NSDictionary *itemsToAttributes = [_collectionView itemsToAttributes];
NSMapTable *itemsToAttributes = [_collectionView itemsToAttributes];
FOR_IN(NSCollectionViewItem*, i, items)
{