// based on code from http://the-useful.blogspot.de/2012/01/getting-nsstatusitem-co-ordinates.html @implementation NSStatusItem (Position) - (NSRect)frame { if (self.view) { return [[self.view window] frame]; } NSImage* image = self.image; NSImage* alternateImage = self.alternateImage; id target = self.target; SEL action = self.action; BOOL highlightMode = self.highlightMode; NSRect viewFrame = NSZeroRect; viewFrame.size = image.size; NSView *statusBarView = [[NSView alloc] initWithFrame: viewFrame]; self.view = statusBarView; NSRect rect = [[statusBarView window] frame]; self.view = nil; self.image = image; self.alternateImage = alternateImage; self.highlightMode = highlightMode; self.action = action; self.target = target; return rect; } @end