Add proper encoding decoding for keyed objects

This commit is contained in:
Gregory John Casamento 2023-03-28 19:47:42 -04:00
parent 15a65bce26
commit 21e8018d7d

View file

@ -384,6 +384,8 @@
self = [super initWithCoder: coder]; self = [super initWithCoder: coder];
if (self != nil) if (self != nil)
{
if ([coder allowsKeyedCoding])
{ {
// These names do not stick to convention. Usually it would be // These names do not stick to convention. Usually it would be
// NS* or NSTreeController* so they must be overriden in // NS* or NSTreeController* so they must be overriden in
@ -422,6 +424,10 @@
[coder decodeBoolForKey: @"NSSelectsInsertedObjects"]]; [coder decodeBoolForKey: @"NSSelectsInsertedObjects"]];
} }
} }
}
else
{
}
return self; return self;
} }
@ -429,6 +435,27 @@
- (void) encodeWithCoder: (NSCoder*)coder - (void) encodeWithCoder: (NSCoder*)coder
{ {
[super encodeWithCoder: coder]; [super encodeWithCoder: coder];
if ([coder allowsKeyedCoding])
{
[coder encodeObject: _childrenKeyPath
forKey: @"NSTreeContentChildrenKey"];
[coder encodeObject: _countKeyPath
forKey: @"NSTreeContentCountKey"];
[coder encodeObject: _leafKeyPath
forKey: @"NSTreeContentLeafKey"];
[coder encodeBool: _avoidsEmptySelection
forKey: @"NSAvoidsEmptySelection"];
[coder encodeBool: _preservesSelection
forKey: @"NSPreservesSelection"];
[coder encodeBool: _selectsInsertedObjects
forKey: @"NSSelectsInsertedObjects"];
}
else
{
}
} }
- (id) copyWithZone: (NSZone*)zone - (id) copyWithZone: (NSZone*)zone