--- /dev/null
+//
+// 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