<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>farp.blog &#187; Cocoa</title>
	<atom:link href="http://fredandrandall.com/blog/tag/cocoa/feed/" rel="self" type="application/rss+xml" />
	<link>http://fredandrandall.com/blog</link>
	<description>Bloggin&#039; about whatever</description>
	<lastBuildDate>Tue, 04 Nov 2014 07:15:30 +0000</lastBuildDate>
	<language>en-US</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.0.38</generator>
	<item>
		<title>Introducing: HappyCampfire, a Campfire framework for OS X and iOS</title>
		<link>http://fredandrandall.com/blog/2011/10/02/introducing-happycampfire-a-campfire-framework-for-os-x-and-ios/</link>
		<comments>http://fredandrandall.com/blog/2011/10/02/introducing-happycampfire-a-campfire-framework-for-os-x-and-ios/#comments</comments>
		<pubDate>Mon, 03 Oct 2011 02:04:26 +0000</pubDate>
		<dc:creator><![CDATA[Randall]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[happycampfire]]></category>
		<category><![CDATA[happycampr]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">http://fredandrandall.com/blog/?p=548</guid>
		<description><![CDATA[One of my favorite tools that I use at work is Campfire. If you haven&#8217;t heard of Campfire, it&#8217;s a group chat web app built by 37 signals. It&#8217;s very easy to use and has some fun features. One day &#8230; <a href="http://fredandrandall.com/blog/2011/10/02/introducing-happycampfire-a-campfire-framework-for-os-x-and-ios/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><a href="http://fredandrandall.com/blog/wp-content/uploads/2011/10/campfirelogo.png"><img class="alignleft size-medium wp-image-609" title="campfirelogo" src="http://fredandrandall.com/blog/wp-content/uploads/2011/10/campfirelogo-300x248.png" alt="" width="300" height="248" /></a>One of my favorite tools that I use at work is <a href="http://campfirenow.com/">Campfire</a>. If you haven&#8217;t heard of Campfire, it&#8217;s a group chat web app built by 37 signals. It&#8217;s very easy to use and has some fun features. One day I started playing around with the Campfire API to see what could be done and from that came the app I&#8217;m working on called HappyCampr. From that app, came the framework HappyCampfire.</p>
<p><a href="https://github.com/blladnar/HappyCamprFramework">HappyCampfire</a> is an objective-c wrapper around most of the Campfire API. It has model objects like users, messages, and rooms. It should allow anyone familiar with Cocoa programming to get right to work on using the Campfire API. It is designed to work on both OS X and iOS but most of the work/testing has been on OS X.</p>
<p>I wanted to put this out there to help people make good innovative uses of Campfire, without having to deal with too many of the nitty gritty details. It&#8217;s definitely still a bit of a work in progress so feel free to fork it and send me a pull request if want to fix/add anything.<span id="more-548"></span></p>
<p>The framework is designed to be asynchronous and uses <a href="http://allseeing-i.com/ASIHTTPRequest/">ASIHTTPRequest</a> for the network communication. It also allows you to make use of Campfire&#8217;s streaming API to get message updates. The project includes a test app for OS X that will let you test all of the different parts of the framework.</p>
<p>To get started you&#8217;ll create an object like this</p>
<pre class="brush: objc; title: ; notranslate">
campfire = [[HappyCampfire alloc] initWithCampfireURL:@&quot;https://YOUR_CAMPFIRE_URL.campfirenow.com&quot;];
campfire.authToken = @&quot;YOUR_AUTH_TOKEN&quot;;

[campfire sendText:@&quot;Hello World&quot; toRoom:@&quot;ROOM_NUM&quot; completionHandler:^(HCMessage *message, NSError *error){

   NSLog(@&quot;%@&quot;, message);

}];
</pre>
<p>If you&#8217;re interested in using the streaming API that&#8217;s really easy too.</p>
<pre class="brush: objc; title: ; notranslate">

campfire.delegate = self;
[campfire startListeningForMessagesInRoom:@&quot;ROOM_NUMBER&quot;];

// Then you'll implement the CampfireResponseProtocol
-(void)messageReceived:(HCMessage *)message
{
   NSLog(@&quot;Message: %@&quot;, message);
}
</pre>
<p><a href="https://github.com/blladnar/HappyCamprFramework/">Check it out on GitHub</a></p>
]]></content:encoded>
			<wfw:commentRss>http://fredandrandall.com/blog/2011/10/02/introducing-happycampfire-a-campfire-framework-for-os-x-and-ios/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to make your app open in full screen on Lion</title>
		<link>http://fredandrandall.com/blog/2011/09/08/how-to-make-your-app-open-in-full-screen-on-lion/</link>
		<comments>http://fredandrandall.com/blog/2011/09/08/how-to-make-your-app-open-in-full-screen-on-lion/#comments</comments>
		<pubDate>Fri, 09 Sep 2011 02:37:03 +0000</pubDate>
		<dc:creator><![CDATA[Randall]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[fullscreen]]></category>
		<category><![CDATA[lion]]></category>
		<category><![CDATA[objc]]></category>

		<guid isPermaLink="false">http://fredandrandall.com/blog/?p=540</guid>
		<description><![CDATA[One of Lions new features is full screen apps. Full screening an app is supposed to remove all distractions and make room for more of the app&#8217;s UI. Actually implementing this in your app is quite simple, but finding how &#8230; <a href="http://fredandrandall.com/blog/2011/09/08/how-to-make-your-app-open-in-full-screen-on-lion/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><a href="http://fredandrandall.com/blog/wp-content/uploads/2011/09/Screen-Shot-2011-09-08-at-10.21.08-PM.png"><img class="alignleft size-full wp-image-543" title="Screen Shot 2011-09-08 at 10.21.08 PM" src="http://fredandrandall.com/blog/wp-content/uploads/2011/09/Screen-Shot-2011-09-08-at-10.21.08-PM.png" alt="" width="77" height="75" /></a>One of Lions new features is full screen apps. Full screening an app is supposed to remove all distractions and make room for more of the app&#8217;s UI. Actually implementing this in your app is quite simple, but finding how to do it online can be a bit tricky.</p>
<p>There are two ways to do it, one is with NSApplication and the other is with NSWindow.</p>
<p>To do it with NSApplication, you&#8217;ll make this simple call</p>
<pre class="brush: objc; title: ; notranslate">
   [[NSApplication sharedApplication]
           setPresentationOptions:NSFullScreenWindowMask];
</pre>
<p>To do it with NSWindow you&#8217;ll make this one</p>
<pre class="brush: objc; title: ; notranslate">
   [window setCollectionBehavior:
             NSWindowCollectionBehaviorFullScreenPrimary];
</pre>
<p>There is also an <code>NSWindowCollectionBehaviorFullScreenAuxiliary</code> that you can use to allow auxiliary windows to show up in the space with the main window.</p>
<p>Calling either of these methods will add the resize button to the upper right corner of the window. You can call them at any time also. If you want it to be in the app all the time, call it somewhere like <code>applicationDidFinishLaunching</code>.</p>
<p>One thing to remember is that fullscreen functionality like this is LION ONLY. If you&#8217;re using this in an app that targets more than 10.7, make sure to do the appropriate checks around this code.</p>
]]></content:encoded>
			<wfw:commentRss>http://fredandrandall.com/blog/2011/09/08/how-to-make-your-app-open-in-full-screen-on-lion/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Getting started with Cocoa&#8217;s new auto layout</title>
		<link>http://fredandrandall.com/blog/2011/08/22/getting-started-with-cocoas-new-autolayout/</link>
		<comments>http://fredandrandall.com/blog/2011/08/22/getting-started-with-cocoas-new-autolayout/#comments</comments>
		<pubDate>Tue, 23 Aug 2011 01:56:23 +0000</pubDate>
		<dc:creator><![CDATA[Randall]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[auto layout]]></category>
		<category><![CDATA[Cocoa]]></category>

		<guid isPermaLink="false">http://fredandrandall.com/blog/?p=514</guid>
		<description><![CDATA[Auto layout might be the most exciting Mac only thing announced at WWDC this year. It improves on Cocoa&#8217;s idea of springs and struts and will let spend way less time building your UI. Despite seeing auto layout used at &#8230; <a href="http://fredandrandall.com/blog/2011/08/22/getting-started-with-cocoas-new-autolayout/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Auto layout might be the most exciting Mac only thing announced at WWDC this year. It improves on Cocoa&#8217;s idea of springs and struts and will let spend way less time building your UI.</p>
<p>Despite seeing auto layout used at WWDC, I couldn&#8217;t remember how to use it a couple months later when I sat down to play with it. Apple&#8217;s <a href="http://developer.apple.com/library/mac/#documentation/UserExperience/Conceptual/AutolayoutPG/Articles/Introduction.html">programming guide</a> has lots of good stuff, but it seems to be missing a bit about getting started.</p>
<p>Default projects in Xcode 4.1 on 10.7 don&#8217;t default to using  auto layout so you&#8217;ll need to enable it. (Note: Projects using auto layout are 10.7 only)</p>
<p><a href="http://fredandrandall.com/blog/wp-content/uploads/2011/08/saveasautolayout.png"><img class="aligncenter size-full wp-image-515" title="saveasautolayout" src="http://fredandrandall.com/blog/wp-content/uploads/2011/08/saveasautolayout.png" alt="" width="256" height="348" /></a><span id="more-514"></span>So now you can use auto layout in your project. How do you use auto layout? By adding constraints. You&#8217;ll add constraints from the editor menu.</p>
<p><a href="http://fredandrandall.com/blog/wp-content/uploads/2011/08/wheretoaddconstraints.png"><img class="aligncenter size-full wp-image-516" title="wheretoaddconstraints" src="http://fredandrandall.com/blog/wp-content/uploads/2011/08/wheretoaddconstraints.png" alt="" width="561" height="335" /></a></p>
<p>You can also command+click on multiple controls and add constraints to more than one control at a time.</p>
<p>Here&#8217;s a short screencast of some simple things you can do with constraints. One great thing is that they work inside Xcode and you don&#8217;t need to build and run your app.</p>
<p><!-- copy and paste. Modify height and width if desired. --> <object id="scPlayer" width="746" height="490" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="quality" value="high" /><param name="flashVars" value="thumb=http://content.screencast.com/users/lladnar/folders/Jing/media/5b66bef8-002d-4277-bc2f-47bc60ff146a/FirstFrame.jpg&amp;containerwidth=746&amp;containerheight=490&amp;content=http://content.screencast.com/users/lladnar/folders/Jing/media/5b66bef8-002d-4277-bc2f-47bc60ff146a/00000129.mp4&amp;blurover=false" /><param name="allowFullScreen" value="true" /><param name="scale" value="showall" /><param name="allowScriptAccess" value="always" /><param name="base" value="http://content.screencast.com/users/lladnar/folders/Jing/media/5b66bef8-002d-4277-bc2f-47bc60ff146a/" /><param name="src" value="http://content.screencast.com/users/lladnar/folders/Jing/media/5b66bef8-002d-4277-bc2f-47bc60ff146a/jingh264player.swf" /><param name="flashvars" value="thumb=http://content.screencast.com/users/lladnar/folders/Jing/media/5b66bef8-002d-4277-bc2f-47bc60ff146a/FirstFrame.jpg&amp;containerwidth=746&amp;containerheight=490&amp;content=http://content.screencast.com/users/lladnar/folders/Jing/media/5b66bef8-002d-4277-bc2f-47bc60ff146a/00000129.mp4&amp;blurover=false" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><embed id="scPlayer" width="746" height="490" type="application/x-shockwave-flash" src="http://content.screencast.com/users/lladnar/folders/Jing/media/5b66bef8-002d-4277-bc2f-47bc60ff146a/jingh264player.swf" quality="high" flashVars="thumb=http://content.screencast.com/users/lladnar/folders/Jing/media/5b66bef8-002d-4277-bc2f-47bc60ff146a/FirstFrame.jpg&amp;containerwidth=746&amp;containerheight=490&amp;content=http://content.screencast.com/users/lladnar/folders/Jing/media/5b66bef8-002d-4277-bc2f-47bc60ff146a/00000129.mp4&amp;blurover=false" allowFullScreen="true" scale="showall" allowScriptAccess="always" base="http://content.screencast.com/users/lladnar/folders/Jing/media/5b66bef8-002d-4277-bc2f-47bc60ff146a/" flashvars="thumb=http://content.screencast.com/users/lladnar/folders/Jing/media/5b66bef8-002d-4277-bc2f-47bc60ff146a/FirstFrame.jpg&amp;containerwidth=746&amp;containerheight=490&amp;content=http://content.screencast.com/users/lladnar/folders/Jing/media/5b66bef8-002d-4277-bc2f-47bc60ff146a/00000129.mp4&amp;blurover=false" allowfullscreen="true" allowscriptaccess="always" /><iframe frameborder="0" scrolling="no" style="overflow:hidden;" src="http://www.screencast.com/users/lladnar/folders/Jing/media/5b66bef8-002d-4277-bc2f-47bc60ff146a/embed" height="490" width="746"></iframe></object></p>
]]></content:encoded>
			<wfw:commentRss>http://fredandrandall.com/blog/2011/08/22/getting-started-with-cocoas-new-autolayout/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://content.screencast.com/users/lladnar/folders/Jing/media/5b66bef8-002d-4277-bc2f-47bc60ff146a/00000129.mp4&#038;amp" length="1408265" type="video/mp4" />
		</item>
		<item>
		<title>Automatic Link Detection in an NSTextView</title>
		<link>http://fredandrandall.com/blog/2011/08/16/automatic-link-detection-in-an-nstextview/</link>
		<comments>http://fredandrandall.com/blog/2011/08/16/automatic-link-detection-in-an-nstextview/#comments</comments>
		<pubDate>Wed, 17 Aug 2011 03:48:19 +0000</pubDate>
		<dc:creator><![CDATA[Randall]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[NSTextView]]></category>
		<category><![CDATA[objc]]></category>

		<guid isPermaLink="false">http://fredandrandall.com/blog/?p=506</guid>
		<description><![CDATA[NSTextView is a really powerful text view class. It can do all kinds of stuff like automatic spelling correction, email, phone number, and address detection, and link detection. I was working on a chat application and I wanted to have &#8230; <a href="http://fredandrandall.com/blog/2011/08/16/automatic-link-detection-in-an-nstextview/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>NSTextView is a really powerful text view class. It can do all kinds of stuff like automatic spelling correction, email, phone number, and address detection, and link detection. I was working on a chat application and I wanted to have links that people sent be clickable. I was using an NSTextView because it has the automaticLinkDetection property.</p>
<p>Unfortunately, I couldn&#8217;t get links to show up in my app. I tried sending it delegate messages and lots of other stuff. It just wouldn&#8217;t work when I set the text programatically. It would only work when I was actually typing in to the NSTextView and even then, it was a little flaky. I posted a <a href="http://stackoverflow.com/questions/7055131/automatic-link-detection-not-working-in-nstextview-after-programmatically-setting">question on StackOverflow</a> and didn&#8217;t get any answers.</p>
<p>So to fix the problem, I did the link detection myself. I look through the text view for links and then add them myself as NSAttributedStrings. I did this using three different categories.</p>
<p>There is <a href="http://snippets.aktagon.com/snippets/358-How-to-make-a-clickable-link-inside-a-NSTextField-and-Cocoa">NSAttributedString+Hyperlink</a>, NSString+FindURLs, and NSTextView+AutomaticLinkDetection. I use the FindURLs category to find the links and their locations, then I use the Hyperlink category to format the string like a link, and the AutomaticLinkDetection category to bring them together.</p>
<p>You use it like this</p>
<pre class="brush: objc; title: ; notranslate">
   [myTextView setString:@&quot;http://google.com http://apple.com&quot;];
   [myTextView detectAndAddLinks];
</pre>
<p>And here is the implementation</p>
<pre class="brush: objc; title: ; notranslate">
-(void)detectAndAddLinks
{
   NSArray *linkLocations = [[self string] locationsOfLinks];
   NSArray *links = [[self string] arrayOfLinks];

   int i=0;
   for( NSString *link in links )
   {
      NSAttributedString *linkString = [NSAttributedString hyperlinkFromString:link withURL:[NSURL URLWithString:link]];
      [[self textStorage] replaceCharactersInRange:[[linkLocations objectAtIndex:i] range] withAttributedString:linkString];
      i++;
   }

}
</pre>
<p>I put an <a href="https://github.com/blladnar/AutoLink">example project on GitHub</a> that you can look at and use.</p>
<p>Let me know if there was something I missed that would make it so I don&#8217;t have to use the category.</p>
]]></content:encoded>
			<wfw:commentRss>http://fredandrandall.com/blog/2011/08/16/automatic-link-detection-in-an-nstextview/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>How to create a custom cocoa framework</title>
		<link>http://fredandrandall.com/blog/2011/02/04/how-to-create-a-custom-cocoa-framework/</link>
		<comments>http://fredandrandall.com/blog/2011/02/04/how-to-create-a-custom-cocoa-framework/#comments</comments>
		<pubDate>Sat, 05 Feb 2011 04:29:53 +0000</pubDate>
		<dc:creator><![CDATA[Randall]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[objc]]></category>
		<category><![CDATA[thoughtback]]></category>

		<guid isPermaLink="false">http://fredandrandall.com/blog/?p=238</guid>
		<description><![CDATA[I was recently trying to rip out some code from the Thoughtback app into it&#8217;s own framework so that I could eventually open source when we decide to make our API public. I&#8217;ve used frameworks plenty of times, but I&#8217;ve never &#8230; <a href="http://fredandrandall.com/blog/2011/02/04/how-to-create-a-custom-cocoa-framework/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I was recently trying to rip out some code from the <a href="http://www.thoughtback.com">Thoughtback</a> app into it&#8217;s own framework so that I could eventually open source when we decide to make our API public. I&#8217;ve used frameworks plenty of times, but I&#8217;ve never actually made my own.</p>
<p>I started off by just using the default Cocoa Framework project that XCode makes for you. It all seemed to work just fine, but when I tried actually using the framework in a different project, it wouldn&#8217;t load. I kept getting this error</p>
<pre class="brush: plain; title: ; notranslate">Library not loaded: path/to/framework
 Referenced from: path/to/app/
 Reason: image not found</pre>
<p><span id="more-238"></span>After lots of looking around I finally figured out the problem. Frameworks can be referenced at the System level (requires admin rights to install), the User level (could be useful to share a framework between apps), and at the application level. Bundling your framework inside the application is the most common way to do that. The &#8220;image not found&#8221; error has to do with some pathing in the framework. To fix it, you&#8217;ll need to change the &#8220;Installation Directory&#8221; in the build settings of your framework. Right click on your framework&#8217;s target to bring up the info panel. Search for &#8220;Installation Directory&#8221; and set it to be <strong>@executable_path/../Frameworks</strong>.</p>
<p><a href="http://fredandrandall.com/blog/wp-content/uploads/2011/02/InstallationDirectory.png"><img class="aligncenter size-full wp-image-248" title="InstallationDirectory" src="http://fredandrandall.com/blog/wp-content/uploads/2011/02/InstallationDirectory.png" alt="" width="516" height="593" /></a></p>
<p>Now the framework should load just fine in any project you want to use it in. I still had a problem though. If you&#8217;re familiar with cocoa frameworks, you&#8217;ll know its just a bundle with a library and some header files in a certain directory structure. I looked at my framework and couldn&#8217;t find the &#8220;Headers&#8221; folder with my header files so I couldn&#8217;t use anything that was in my framework. I googled around for a little while and found nothing. Thats when I noticed the &#8220;Role&#8221; column when I clicked on my framework target. That let me set the header files to public, private, or project, depending on how I wanted them to show up in my framework.</p>
<p><a href="http://fredandrandall.com/blog/wp-content/uploads/2011/02/PublicHeader.png"><img class="aligncenter size-full wp-image-247" title="PublicHeader" src="http://fredandrandall.com/blog/wp-content/uploads/2011/02/PublicHeader.png" alt="" width="370" height="401" /></a></p>
<p>So now that I have the library path right and the header files right, there is just one thing I needed to do to get it working in my test app. You&#8217;ll need to add another build step to your application target that copies the framework to your application bundle.</p>
<ol>
<li>Right click on your application target.</li>
<li>Click &#8220;New Build Phase&#8221;</li>
<li>Click &#8220;New Copy Files Build Phase&#8221;</li>
<li>Change the destination to &#8220;Frameworks&#8221;</li>
<li>Close the window.</li>
<li>Drag and drop your framework into the build phase.</li>
</ol>
<p><object id="scPlayer" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="763" height="429" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="data" value="http://content.screencast.com/users/lladnar/folders/Jing/media/33d932c2-955a-4b9b-841e-236f5ce936e8/jingswfplayer.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#FFFFFF" /><param name="flashVars" value="thumb=http://content.screencast.com/users/lladnar/folders/Jing/media/33d932c2-955a-4b9b-841e-236f5ce936e8/FirstFrame.jpg&amp;containerwidth=763&amp;containerheight=429&amp;content=http://content.screencast.com/users/lladnar/folders/Jing/media/33d932c2-955a-4b9b-841e-236f5ce936e8/00000074.swf&amp;blurover=false" /><param name="allowFullScreen" value="true" /><param name="scale" value="showall" /><param name="allowScriptAccess" value="always" /><param name="base" value="http://content.screencast.com/users/lladnar/folders/Jing/media/33d932c2-955a-4b9b-841e-236f5ce936e8/" /><param name="src" value="http://content.screencast.com/users/lladnar/folders/Jing/media/33d932c2-955a-4b9b-841e-236f5ce936e8/jingswfplayer.swf" /><param name="flashvars" value="thumb=http://content.screencast.com/users/lladnar/folders/Jing/media/33d932c2-955a-4b9b-841e-236f5ce936e8/FirstFrame.jpg&amp;containerwidth=763&amp;containerheight=429&amp;content=http://content.screencast.com/users/lladnar/folders/Jing/media/33d932c2-955a-4b9b-841e-236f5ce936e8/00000074.swf&amp;blurover=false" /><param name="allowfullscreen" value="true" /><embed id="scPlayer" type="application/x-shockwave-flash" width="763" height="429" src="http://content.screencast.com/users/lladnar/folders/Jing/media/33d932c2-955a-4b9b-841e-236f5ce936e8/jingswfplayer.swf" base="http://content.screencast.com/users/lladnar/folders/Jing/media/33d932c2-955a-4b9b-841e-236f5ce936e8/" allowscriptaccess="always" scale="showall" allowfullscreen="true" flashvars="thumb=http://content.screencast.com/users/lladnar/folders/Jing/media/33d932c2-955a-4b9b-841e-236f5ce936e8/FirstFrame.jpg&amp;containerwidth=763&amp;containerheight=429&amp;content=http://content.screencast.com/users/lladnar/folders/Jing/media/33d932c2-955a-4b9b-841e-236f5ce936e8/00000074.swf&amp;blurover=false" bgcolor="#FFFFFF" quality="high" data="http://content.screencast.com/users/lladnar/folders/Jing/media/33d932c2-955a-4b9b-841e-236f5ce936e8/jingswfplayer.swf"></embed></object></p>
<p>Hopefully you found this useful. I couldn&#8217;t find all of the resources I needed in one place and what I did find wasn&#8217;t detailed enough to solve my problem immediately. This <a href="http://www.cimgf.com/2008/09/04/cocoa-tutorial-creating-your-very-own-framework/">post</a> from Cocoa Is My Girlfriend got me most of the way there and has some more good information on the subject.</p>
]]></content:encoded>
			<wfw:commentRss>http://fredandrandall.com/blog/2011/02/04/how-to-create-a-custom-cocoa-framework/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
