{"id":37,"date":"2007-04-27T20:27:40","date_gmt":"2007-04-28T04:27:40","guid":{"rendered":"http:\/\/blog.danielparnell.com\/?p=37"},"modified":"2007-04-27T20:27:40","modified_gmt":"2007-04-28T04:27:40","slug":"cocoa-webkit","status":"publish","type":"post","link":"https:\/\/blog.danielparnell.com\/?p=37","title":{"rendered":"Cocoa WebKit"},"content":{"rendered":"<p>I&#8217;ve been playing with the Cocoa WebKit over the last week or so and have rewritten my blogThing application to use it.\u00c2\u00a0 So far I&#8217;m quite pleased with the way things are coming along \ud83d\ude42<DIV>It lets me do some very interesting things such as paste in formatted text from XCode<\/DIV><DIV><BR><\/BR><\/DIV><P style=\"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px\/normal Monaco; \"><SPAN style=\"color: rgb(35, 110, 37);\">\/\/<\/SPAN><\/P><P style=\"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px\/normal Monaco; \"><SPAN style=\"color: rgb(35, 110, 37);\">\/\/\u00c2\u00a0 DPKeychain.h<\/SPAN><\/P><P style=\"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px\/normal Monaco; \"><SPAN style=\"color: rgb(35, 110, 37);\">\/\/\u00c2\u00a0 iSpeak<\/SPAN><\/P><P style=\"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px\/normal Monaco; \"><SPAN style=\"color: rgb(35, 110, 37);\">\/\/<\/SPAN><\/P><P style=\"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px\/normal Monaco; \"><SPAN style=\"color: rgb(35, 110, 37);\">\/\/\u00c2\u00a0 Created by Daniel Parnell on 26\/07\/04.<\/SPAN><\/P><P style=\"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px\/normal Monaco; \"><SPAN style=\"color: rgb(35, 110, 37);\">\/\/\u00c2\u00a0 Copyright 2004 Daniel Parnell. All rights reserved.<\/SPAN><\/P><P style=\"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px\/normal Monaco; \"><SPAN style=\"color: rgb(35, 110, 37);\">\/\/<\/SPAN><\/P><P style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px\"><BR><\/BR><\/P><P style=\"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px\/normal Monaco; \"><SPAN style=\"color: rgb(104, 56, 33);\">#import &lt;Cocoa\/Cocoa.h&gt;<\/SPAN><\/P><P style=\"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px\/normal Monaco; \"><SPAN style=\"color: rgb(104, 56, 33);\">#import &lt;CoreFoundation\/CoreFoundation.h&gt;<\/SPAN><\/P><P style=\"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px\/normal Monaco; \"><SPAN style=\"color: rgb(104, 56, 33);\">#import &lt;Security\/Security.h&gt;<\/SPAN><\/P><P style=\"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px\/normal Monaco; \"><SPAN style=\"color: rgb(104, 56, 33);\">#import &lt;CoreServices\/CoreServices.h&gt;<\/SPAN><\/P><P style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px\"><BR><\/BR><\/P><P style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco\"><SPAN style=\"\"><SPAN style=\"color: rgb(118, 15, 80);\">@interface<\/SPAN><\/SPAN> DPKeychain : NSObject {<\/P><P style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco\">\u00c2\u00a0 \u00c2\u00a0 SecKeychainRef keychain;<\/P><P style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco\">}<\/P><P style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px\"><BR><\/BR><\/P><P style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco\">+ (DPKeychain*) defaultKeychain;<\/P><P style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco\">+ (DPKeychain*) keychainWithPath: (NSString*) aPath;<\/P><P style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px\"><BR><\/BR><\/P><P style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco\">&#8211; (DPKeychain*) initWithPath: (NSString*) aPath;<\/P><P style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px\"><BR><\/BR><\/P><P style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco\">&#8211; (<SPAN style=\"\"><SPAN style=\"color: rgb(118, 15, 80);\">void<\/SPAN><\/SPAN>) setPassword: (NSString*)aPassword forName: (NSString*) aName andService: (NSString*) aService;<\/P><P style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco\">&#8211; (NSString*) getPasswordForName: (NSString*) aName andService: (NSString*) aService;<\/P><P style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco\">&#8211; (<SPAN style=\"\"><SPAN style=\"color: rgb(118, 15, 80);\">bool<\/SPAN><\/SPAN>) containsPasswordForName: (NSString*) aName andService: (NSString*) aService;<\/P><P style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco\">&#8211; (<SPAN style=\"\"><SPAN style=\"color: rgb(118, 15, 80);\">void<\/SPAN><\/SPAN>) removePasswordForName: (NSString*) aName andService: (NSString*) aService;<\/P><P style=\"margin: 0.0px 0.0px 0.0px 0.0px; font: 10.0px Monaco; min-height: 14.0px\"><BR><\/BR><\/P><P style=\"margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 10px\/normal Monaco; \"><SPAN style=\"color: rgb(118, 15, 80);\">@end<\/SPAN><\/P><DIV><BR><\/BR><\/DIV><DIV>Inline image support is also working really nicely \ud83d\ude42<\/DIV><DIV><IMG src=\"http:\/\/blog.danielparnell.com\/wp-content\/uploads\/2007\/04\/bee1.jpg\" width=\"64\" height=\"64\"><\/IMG><\/DIV><DIV>I still need to get things like automatic link creation working, but that&#8217;s pretty straight forward.<\/DIV><DIV><BR><\/BR><\/DIV><DIV>To top it all off I&#8217;ve also made use of CoreGraphics transitions to make things look a little prettier.\u00c2\u00a0 That&#8217;s been heaps of fun \ud83d\ude42<\/DIV><DIV><BR><\/BR><\/DIV><\/p>\n","protected":false},"excerpt":{"rendered":"<p>I&#8217;ve been playing with the Cocoa WebKit over the last week or so and have rewritten my blogThing application to use it.\u00c2\u00a0 So far I&#8217;m quite pleased with the way things are coming along \ud83d\ude42It lets me do some very interesting things such as paste in formatted text from XCode\/\/\/\/\u00c2\u00a0 DPKeychain.h\/\/\u00c2\u00a0 iSpeak\/\/\/\/\u00c2\u00a0 Created by Daniel &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/blog.danielparnell.com\/?p=37\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Cocoa WebKit&#8221;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[4,3,2,6],"tags":[],"class_list":["post-37","post","type-post","status-publish","format-standard","hentry","category-cocoa","category-mac-os-x","category-programming","category-web","entry"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p561S3-B","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/blog.danielparnell.com\/index.php?rest_route=\/wp\/v2\/posts\/37","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.danielparnell.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.danielparnell.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.danielparnell.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.danielparnell.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=37"}],"version-history":[{"count":0,"href":"https:\/\/blog.danielparnell.com\/index.php?rest_route=\/wp\/v2\/posts\/37\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.danielparnell.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=37"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.danielparnell.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=37"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.danielparnell.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=37"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}