X-Git-Url: https://git.yukkurigames.com/?p=enjoyable.git;a=blobdiff_plain;f=NSMenu%2BRepresentedObjectAccessors.m;fp=NSMenu%2BRepresentedObjectAccessors.m;h=a63f083aa1eac1715e7ea4c2f7ded23c72cdb9c8;hp=0000000000000000000000000000000000000000;hb=b46786face17680799d7fd9795dead8a801ae9c1;hpb=57a69924ef04692efe35eb75e3b27dd81af1c147 diff --git a/NSMenu+RepresentedObjectAccessors.m b/NSMenu+RepresentedObjectAccessors.m new file mode 100644 index 0000000..a63f083 --- /dev/null +++ b/NSMenu+RepresentedObjectAccessors.m @@ -0,0 +1,48 @@ +// +// NSMenu+RepresentedObjectAccessors.m +// Enjoyable +// +// Created by Joe Wreschnig on 3/4/13. +// +// + +#import "NSMenu+RepresentedObjectAccessors.h" + +@implementation NSMenu (RepresentedObjectAccessors) + +- (NSMenuItem *)itemWithRepresentedObject:(id)object { + for (NSMenuItem *item in self.itemArray) + if ([item.representedObject isEqual:object]) + return item; + return nil; +} + +- (void)removeItemWithRepresentedObject:(id)object { + NSInteger idx = [self indexOfItemWithRepresentedObject:object]; + if (idx != -1) + [self removeItemAtIndex:idx]; +} + +- (NSMenuItem *)lastItem { + return self.itemArray.lastObject; +} + +- (void)removeLastItem { + if (self.numberOfItems) + [self removeItemAtIndex:self.numberOfItems - 1]; +} + +@end + +@implementation NSPopUpButton (RepresentedObjectAccessors) + +- (NSMenuItem *)itemWithRepresentedObject:(id)object { + return [self.menu itemWithRepresentedObject:object]; +} + +- (void)selectItemWithRepresentedObject:(id)object { + [self selectItemAtIndex:[self indexOfItemWithRepresentedObject:object]]; +} + + +@end