I recently found a need for a Cocoa based implementation of a word cloud and ended up throwing one together. I know word clouds provide very little informational value and they’re kinda 2004 but I made it anyways. I’ve released the source under the Apache 2.0 license (as per the usual). More info is available at the Srs Biznas site (or in the case there’s a distant future where Srs Biznas no longer exists, here’s the GitHub link)
Usage is very easy, just lay out a custom NSView in Interface Builder and change the class to SRSWordCloudView.
SRSRankedWord* rw1 = [[SRSRankedWord alloc] init]; SRSRankedWord* rw2 = [[SRSRankedWord alloc] init]; SRSRankedWord* rw3 = [[SRSRankedWord alloc] init]; NSMutableArray* words = [NSMutableArray array]; rw1.word = @"Word 1"; rw1.rank = 1; [words addObject:rw1]; rw2.word = @"Word 2"; rw2.rank = 10; [words addObject:rw2]; rw3.word = @"Word 3"; rw3.rank = 25; [words addObject:rw3]; wordCloud.wordList = words; wordCloud.delegate = self;
The NSTextFields in the word cloud respond to right click & control click events with a context menu. The context menu can be supplied by implementing the SRSWordCloudViewDelegate protocol.