Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Updated to version 1.1

  • Loading branch information...
commit 3dea1fb10033757e609a597d1c82c657efb92537 1 parent 77b64d2
Nick Lockwood authored
View
2  LICENCE.md
@@ -1,5 +1,5 @@
WebContentView
-version 1.0.4, September 9th, 2011
+version 1.1, September 10th, 2011
Copyright (C) 2011 Charcoal Design
View
20 README.md
@@ -23,25 +23,25 @@ This is the internal UIScrollView used for scrolling the content. A native scrol
This is the UIWebView used internally by the WebContentView. Note that the WebContentView is registered as the UIWebView's delegate, so overriding that will break some of the standard WebContentView behaviours.
- @property (nonatomic, retain) IBOutlet UIView *header;
+ @property (nonatomic, retain) IBOutlet UIView *headerView;
An optional UIView supplied as a header for the web content. This will automatically be placed above the web content within the scroll view and will scroll up and down with the web content.
- @property (nonatomic, retain) IBOutlet UIView *footer;
+ @property (nonatomic, retain) IBOutlet UIView *footerView;
An optional UIView supplied as a footer for the web content. This will automatically be placed below the web content within the scroll view and will scroll up and down with the web content. If the web content is not tall enough to fill the view, the footer will be locked to the bottom of the WebContentView, with a gap below the web content.
@property (nonatomic, copy) NSString *content;
The content to display. This should be provided as HTML. This can be an HTML fragment rather than a full HTML document (i.e. a `<head>` or `<body>` tag are not required). The content can contain embedded styles, but it's easier and more efficient to set the styles using the styles instance property or the defaultStyles class property. Any image references or other URLs in the content will be relative to the application bundle.
-
- @property (nonatomic, copy) NSString *styles;
-
-The styles used by the HTML content for the WebContentView instance. These are appended to the shared defaultStyles stylesheet. It is more efficient for performance to set the styles initially before the content, however you can set the styles after the content has loaded and they will be rewritten using JavaScript, which is much quicker than reloading the content from scratch, and won't flicker. Any images or fonts referenced in the styles will be relative to the application bundle.
@property (nonatomic, assign) BOOL scrollEnabled;
This enabled/disables scrolling on the internal UIScrollView of the WebContentView.
+
+ @property (nonatomic, assign) CGFloat minimumContentHeight;
+
+This is the minimum height at which to size the content, including the header and footer heights. If the minimumContentHeight is greater than the combined heights of the header, web content and footer then the footer will be aligned with the bottom of the specified height. If the minimumContentHeight is less than or equal to the combined heights then the footer will be positioned immediately underneath the web content. The default minimumContentHeight is zero. Set minimumContentHeight to equal the height of the WebContentView to replicate the behaviour of WebContentView version 1.0.4 and earlier.
@property (nonatomic, assign) id<WebContentViewDelegate> delegate;
@@ -73,10 +73,6 @@ This sets the shared stylesheet used by all WebContentView instances. Any existi
WebContentViews sometimes take a fraction of a second to render, which can result in a content flash when they are displayed. You can use this method to preload the content so that it will render instantly. Preloading effectively creates a WebContentView instance in the background, so it can consume a lot of memory. The number of preloaded views is capped to 10 by default (you can edit this constant in the .m file if you choose). In the event of a memory warning, the preloaded views will be cleared out, so it's a good idea to preload at the last possible opportunity before the WebContentView is displayed.
- + (void)preloadContent:(NSString *)content withStyles:(NSString *)styles;
-
-This works the same way as `preloadContent:`, except that you can also preload a particular set of styles with the view. Note that preloaded views will already use the shared styles, so unless you need specific styles to go with the content, you need't use this method.
-
Each WebContentView instance has the following methods:
@@ -86,7 +82,7 @@ This will flash the scroll bar if the contents are larger than the view bounds.
- (void)sizeContentToFit;
-This will automatically resize the WebContentView scrollable content region to match the size of the HTML content, and reposition the header and footer views. You shouldn't normally need to call this manually, but it may be required if the contents are resized due to CSS hover effects or JavaScript events do not trigger an automatic resize.
+This will automatically resize the WebContentView scrollable content region to match the size of the HTML content, and reposition the header and footer views. You shouldn't normally need to call this manually, but it may be required if the contents are resized due to CSS hover effects or JavaScript events that do not trigger an automatic resize.
Delegate methods
@@ -94,7 +90,7 @@ Delegate methods
- (void)webContentViewDidFinishLoad:(WebContentView *)webContentView;
-This method is called when a WebContentView finishes loading/displaying the content. Note that if the content is preloaded, this method will never be called.
+This method is called when a WebContentView finishes loading/displaying the content. Note that if the content is preloaded, this method may never be called, so check the `loading` property after setting the content if you need to perform some action once the content has loaded.
- (BOOL)webContentView:(WebContentView *)webContentView shouldOpenURL:(NSURL *)URL;
View
7 RELEASE NOTES.md
@@ -1,3 +1,10 @@
+Version 1.1
+
+- Less is more! Removed the styles property of the WebContentView to encourage use of the setSharedStyles method instead, which is more performant and less glitchy.
+- Added new minimumContentHeight property to control the placement of the footer view (default placement is now different from earlier versions - check the documentation.)
+- Renamed header and footer to headerView and footerView.
+- Improved performance when first displaying a view by preloading WebKit.
+
Version 1.0.4
- Fixed race condition where setting web content could cause infinite loop.
View
9 WebContentView/WebContentView.h
@@ -1,7 +1,7 @@
//
// WebContentView.h
//
-// Version 1.0.4
+// Version 1.1
//
// Created by Nick Lockwood on 07/05/2011.
// Copyright 2011 Charcoal Design. All rights reserved.
@@ -53,17 +53,16 @@
+ (NSString *)sharedStyles;
+ (void)setSharedStyles:(NSString *)styles;
+ (void)preloadContent:(NSString *)content;
-+ (void)preloadContent:(NSString *)content withStyles:(NSString *)styles;
@property (nonatomic, retain, readonly) UIScrollView *scrollView;
@property (nonatomic, retain, readonly) UIWebView *webView;
-@property (nonatomic, retain) IBOutlet UIView *header;
-@property (nonatomic, retain) IBOutlet UIView *footer;
+@property (nonatomic, retain) IBOutlet UIView *headerView;
+@property (nonatomic, retain) IBOutlet UIView *footerView;
@property (nonatomic, assign) IBOutlet id<WebContentViewDelegate> delegate;
@property (nonatomic, copy) NSString *content;
-@property (nonatomic, copy) NSString *styles;
@property (nonatomic, assign) BOOL scrollEnabled;
+@property (nonatomic, assign) CGFloat minimumContentHeight;
@property (nonatomic, readonly, getter = isLoading) BOOL loading;
- (void)flashScrollIndicators;
View
149 WebContentView/WebContentView.m
@@ -1,7 +1,7 @@
//
// WebContentView.m
//
-// Version 1.0.4
+// Version 1.1
//
// Created by Nick Lockwood on 07/05/2011.
// Copyright 2011 Charcoal Design. All rights reserved.
@@ -33,7 +33,6 @@
#import "WebContentView.h"
-#define STYLE_TAG @"WCVStyles"
#define MAX_CACHED 10
@@ -60,17 +59,30 @@ @implementation WebContentView
@synthesize scrollView;
@synthesize webView;
-@synthesize header;
-@synthesize footer;
+@synthesize headerView;
+@synthesize footerView;
@synthesize content;
-@synthesize styles;
@synthesize scrollEnabled;
@synthesize delegate;
@synthesize frameSize;
+@synthesize minimumContentHeight;
++ (void)load
+{
+ //ensure the we get initialized on app launch
+ [[NSNotificationCenter defaultCenter] addObserver:self
+ selector:@selector(initialize)
+ name:UIApplicationDidFinishLaunchingNotification
+ object:nil];
+}
+
+ (void)initialize
{
+ //'warm up' webkit
+ [[[UIWebView alloc] init] autorelease];
+
+ //register for cache clearing
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(clearCache)
name:UIApplicationDidReceiveMemoryWarningNotification
@@ -118,11 +130,6 @@ + (WebContentView *)cachedViewForContent:(NSString *)content
+ (void)preloadContent:(NSString *)content
{
- [self preloadContent:content withStyles:nil];
-}
-
-+ (void)preloadContent:(NSString *)content withStyles:(NSString *)styles
-{
if (![self cachedViewForContent:content])
{
if ([cachedViews count] == MAX_CACHED)
@@ -130,7 +137,6 @@ + (void)preloadContent:(NSString *)content withStyles:(NSString *)styles
[cachedViews removeObjectAtIndex:0];
}
WebContentView *view = [[WebContentView alloc] initWithFrame:CGRectMake(0, 0, 1, 1)];
- view.styles = styles;
view.content = content;
[cachedViews addObject:view];
[view release];
@@ -186,6 +192,7 @@ - (void)setup
//defaults
scrollEnabled = YES;
+ minimumContentHeight = 0.0f;
scrollView = [[UIScrollView alloc] initWithFrame:self.bounds];
scrollView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
@@ -230,53 +237,22 @@ - (void)layoutSubviews
{
frameSize = self.frame.size;
[self sizeContentToFit];
+ [self performSelector:@selector(sizeContentToFit) withObject:nil afterDelay:0.0f];
}
}
- (void)refreshStyles
{
- self.styles = styles;
+ self.content = content;
}
- (NSString *)allStyles
{
NSArray *lines = [([defaultStyles stringByReplacingOccurrencesOfString:@"'" withString:@"\""] ?: @"")componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]];
lines = [lines arrayByAddingObjectsFromArray:[([sharedStyles stringByReplacingOccurrencesOfString:@"'" withString:@"\""] ?: @"") componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]]];
- lines = [lines arrayByAddingObjectsFromArray:[([styles stringByReplacingOccurrencesOfString:@"'" withString:@"\""] ?: @"") componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]]];
return [lines componentsJoinedByString:@" "];
}
-- (void)setStyles:(NSString *)_styles
-{
- if (styles != _styles)
- {
- [styles release];
- styles = [_styles retain];
- }
-
- if (webView.loading)
- {
- //abort and reload
- [webView stopLoading];
- self.content = content;
- }
- else
- {
- //update styles using javascript
- NSString *script = [NSString stringWithFormat:
- @"var head = document.getElementsByTagName('head')[0];\
- var style = document.getElementById('%@');\
- if (style) { head.removeChild(style); }\
- style = document.createElement('style');\
- style.id = '%@';\
- var text = document.createTextNode('%@');\
- style.appendChild(text);\
- head.appendChild(style);", STYLE_TAG, STYLE_TAG, [self allStyles]];
- [webView stringByEvaluatingJavaScriptFromString:script];
- [self performSelector:@selector(sizeContentToFit) withObject:nil afterDelay:0.1];
- }
-}
-
- (void)setContent:(NSString *)_content
{
if (content != _content)
@@ -286,17 +262,14 @@ - (void)setContent:(NSString *)_content
}
WebContentView *view = [[self class] cachedViewForContent:content];
- if (view && !view.webView.loading)
+ if (view)
{
[self setWebView:view.webView];
- self.styles = styles;
}
else
{
NSString *html = content ?: @"";
- NSString *style = [NSString stringWithFormat:
- @"<style id='%@' type='text/css'>%@</style>",
- STYLE_TAG, [self allStyles]];
+ NSString *style = [NSString stringWithFormat:@"<style type='text/css'>%@</style>", [self allStyles]];
if ([html rangeOfString:@"</html>"].location == NSNotFound &&
[html rangeOfString:@"</HTML>"].location == NSNotFound)
{
@@ -325,59 +298,74 @@ - (void)setScrollEnabled:(BOOL)_scrollEnabled
- (void)sizeContentToFit
{
CGFloat headerHeight = 0;
- if (header)
+ if (headerView)
{
- headerHeight = header.frame.size.height;
- header.frame = CGRectMake(0, 0, self.bounds.size.width, headerHeight);
+ headerHeight = headerView.frame.size.height;
+ headerView.frame = CGRectMake(0, 0, self.bounds.size.width, headerHeight);
}
CGFloat footerHeight = 0;
- if (footer)
+ if (footerView)
{
- footerHeight = footer.frame.size.height;
+ footerHeight = footerView.frame.size.height;
}
- webView.frame = CGRectMake(0, headerHeight, self.bounds.size.width,
- self.bounds.size.height - headerHeight - footerHeight);
- [webView sizeToFit];
- if (footer)
+
+ CGFloat height = minimumContentHeight - headerHeight - footerHeight;
+ webView.frame = CGRectMake(0, headerHeight, self.bounds.size.width, fmaxf(10.0f, height));
+ [webView sizeToFit];
+
+ if (footerView)
{
- footer.frame = CGRectMake(0, webView.frame.origin.y + webView.frame.size.height, self.bounds.size.width, footerHeight);
+ footerView.frame = CGRectMake(0, webView.frame.origin.y + webView.frame.size.height, self.bounds.size.width, footerHeight);
}
- scrollView.contentSize = CGSizeMake(self.bounds.size.width, webView.frame.size.height + headerHeight + footerHeight);
+ scrollView.contentSize = CGSizeMake(self.bounds.size.width, webView.frame.size.height + headerHeight + footerHeight);
}
-- (void)flashScrollIndicators
+- (void)flashScrollIndicatorsIfApplicable
{
- if (scrollView.contentSize.height > scrollView.bounds.size.height)
+ if (self.loading)
+ {
+ //try again in a bit
+ [self performSelector:@selector(flashScrollIndicatorsIfApplicable)
+ withObject:nil afterDelay:0.1f];
+ }
+ else if (scrollView.contentSize.height > scrollView.bounds.size.height)
{
[scrollView flashScrollIndicators];
}
}
-- (void)setHeader:(UIView *)_header
+- (void)flashScrollIndicators
{
- if (header != _header)
+ //delay in case view is still refreshing
+ [self performSelector:@selector(flashScrollIndicatorsIfApplicable)
+ withObject:nil afterDelay:0.1f];
+}
+
+- (void)setHeaderView:(UIView *)_headerView
+{
+ if (headerView != _headerView)
{
- [header removeFromSuperview];
- [header release];
- header = [_header retain];
- if (header)
+ [headerView removeFromSuperview];
+ [headerView release];
+ headerView = [_headerView retain];
+ if (headerView)
{
- [scrollView addSubview:header];
+ [scrollView addSubview:headerView];
}
}
[self sizeContentToFit];
}
-- (void)setFooter:(UIView *)_footer
+- (void)setFooterView:(UIView *)_footerView
{
- if (footer != _footer)
+ if (footerView != _footerView)
{
- [footer removeFromSuperview];
- [footer release];
- footer = [_footer retain];
- if (footer)
+ [footerView removeFromSuperview];
+ [footerView release];
+ footerView = [_footerView retain];
+ if (footerView)
{
- [scrollView addSubview:footer];
+ [scrollView addSubview:footerView];
}
}
[self sizeContentToFit];
@@ -388,8 +376,8 @@ - (void)dealloc
[[NSNotificationCenter defaultCenter] removeObserver:self];
[scrollView release];
[webView release];
- [header release];
- [footer release];
+ [headerView release];
+ [footerView release];
[super dealloc];
}
@@ -416,8 +404,9 @@ - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)
- (void)webViewDidFinishLoad:(UIWebView *)_webView
{
- [self performSelector:@selector(sizeContentToFit) withObject:nil afterDelay:0.1];
-
+ [self sizeContentToFit];
+ [self performSelector:@selector(sizeContentToFit) withObject:nil afterDelay:0.0f];
+
if ([delegate respondsToSelector:@selector(webContentViewDidFinishLoad:)])
{
[(NSObject *)delegate performSelector:@selector(webContentViewDidFinishLoad:) withObject:self afterDelay:0.2];
View
1,773 ...xample.xcodeproj/project.xcworkspace/xcuserdata/nick.lockwood.xcuserdatad/UserInterfaceState.xcuserstate
@@ -651,8 +651,8 @@
<string>PrimaryDocumentVisibleCharacterRange</string>
<string>HideAllIssues</string>
<string>PrimaryDocumentSelectedCharacterRange</string>
- <real>337270137.47052902</real>
- <string>{346, 1985}</string>
+ <real>337350831.99172997</real>
+ <string>{230, 2047}</string>
<string>{44, 0}</string>
<dict>
<key>$class</key>
@@ -794,9 +794,9 @@
</dict>
</array>
</dict>
- <real>337269942.39093602</real>
- <string>{0, 1966}</string>
- <string>{44, 0}</string>
+ <real>337352190.219953</real>
+ <string>{8278, 1627}</string>
+ <string>{11577, 0}</string>
<dict>
<key>$class</key>
<dict>
@@ -1542,7 +1542,7 @@
<integer>150</integer>
</dict>
</dict>
- <string>file://localhost/Users/nick.lockwood/Dropbox/Open%20Source%20(GIT)/WebContentView/WebContentView/WebContentView.h</string>
+ <string>file://localhost/Users/nick.lockwood/Dropbox/Open%20Source%20(GIT)/WebContentView/WebContentView/WebContentView.m</string>
<dict>
<key>$class</key>
<dict>
@@ -1560,7 +1560,7 @@
<integer>152</integer>
</dict>
</dict>
- <string>file://localhost/Users/nick.lockwood/Dropbox/Open%20Source%20(GIT)/WebContentView/WebContentView/WebContentView.m</string>
+ <string>file://localhost/Users/nick.lockwood/Dropbox/Open%20Source%20(GIT)/WebContentView/WebContentView/WebContentView.h</string>
<dict>
<key>$class</key>
<dict>
@@ -1610,11 +1610,11 @@
</dict>
<dict>
<key>CF$UID</key>
- <integer>332</integer>
+ <integer>333</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>333</integer>
+ <integer>334</integer>
</dict>
<dict>
<key>CF$UID</key>
@@ -1699,19 +1699,19 @@
</dict>
<dict>
<key>CF$UID</key>
- <integer>107</integer>
+ <integer>272</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>172</integer>
+ <integer>273</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>182</integer>
+ <integer>280</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>229</integer>
+ <integer>324</integer>
</dict>
<dict>
<key>CF$UID</key>
@@ -1719,19 +1719,18 @@
</dict>
<dict>
<key>CF$UID</key>
- <integer>238</integer>
+ <integer>107</integer>
</dict>
</array>
</dict>
- <string>IDETabLabel</string>
+ <string>IDEEditorArea</string>
<string>IDEShowNavigator</string>
- <string>AssistantEditorsLayout</string>
+ <string>IDETabLabel</string>
<string>IDEWorkspaceTabControllerUtilityAreaSplitView</string>
<string>IDENavigatorArea</string>
<string>IDEWorkspaceTabControllerDesignAreaSplitView</string>
<string>IDEShowUtilities</string>
- <string>IDEEditorArea</string>
- <string>WebContentView.h</string>
+ <string>AssistantEditorsLayout</string>
<dict>
<key>$class</key>
<dict>
@@ -1742,44 +1741,20 @@
<array>
<dict>
<key>CF$UID</key>
- <integer>173</integer>
+ <integer>172</integer>
</dict>
- </array>
- <key>NS.objects</key>
- <array>
<dict>
<key>CF$UID</key>
- <integer>174</integer>
+ <integer>173</integer>
</dict>
- </array>
- </dict>
- <string>DVTSplitViewItems</string>
- <dict>
- <key>$class</key>
- <dict>
- <key>CF$UID</key>
- <integer>94</integer>
- </dict>
- <key>NS.objects</key>
- <array>
<dict>
<key>CF$UID</key>
- <integer>175</integer>
+ <integer>174</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>180</integer>
+ <integer>175</integer>
</dict>
- </array>
- </dict>
- <dict>
- <key>$class</key>
- <dict>
- <key>CF$UID</key>
- <integer>91</integer>
- </dict>
- <key>NS.keys</key>
- <array>
<dict>
<key>CF$UID</key>
<integer>176</integer>
@@ -1788,9 +1763,6 @@
<key>CF$UID</key>
<integer>177</integer>
</dict>
- </array>
- <key>NS.objects</key>
- <array>
<dict>
<key>CF$UID</key>
<integer>178</integer>
@@ -1800,300 +1772,368 @@
<integer>179</integer>
</dict>
</array>
- </dict>
- <string>DVTIdentifier</string>
- <string>DVTViewMagnitude</string>
- <string></string>
- <real>574</real>
- <dict>
- <key>$class</key>
- <dict>
- <key>CF$UID</key>
- <integer>91</integer>
- </dict>
- <key>NS.keys</key>
- <array>
- <dict>
- <key>CF$UID</key>
- <integer>176</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>177</integer>
- </dict>
- </array>
<key>NS.objects</key>
<array>
<dict>
<key>CF$UID</key>
- <integer>178</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>181</integer>
- </dict>
- </array>
- </dict>
- <real>224</real>
- <dict>
- <key>$class</key>
- <dict>
- <key>CF$UID</key>
- <integer>45</integer>
- </dict>
- <key>NS.keys</key>
- <array>
- <dict>
- <key>CF$UID</key>
- <integer>183</integer>
+ <integer>180</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>184</integer>
+ <integer>200</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>185</integer>
+ <integer>233</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>186</integer>
+ <integer>15</integer>
</dict>
- </array>
- <key>NS.objects</key>
- <array>
<dict>
<key>CF$UID</key>
- <integer>187</integer>
+ <integer>107</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>206</integer>
+ <integer>263</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>183</integer>
+ <integer>271</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>211</integer>
+ <integer>43</integer>
</dict>
</array>
</dict>
- <string>Xcode.IDEKit.Navigator.Structure</string>
- <string>Xcode.DebuggerKit.ThreadsStacksNavigator</string>
- <string>SelectedNavigator</string>
- <string>Xcode.IDEKit.Navigator.Issues</string>
+ <string>layoutTree</string>
+ <string>IDEEditorMode_Standard</string>
+ <string>IDEEDitorArea_DebugArea</string>
+ <string>IDEShowEditor</string>
+ <string>EditorMode</string>
+ <string>DebuggerSplitView</string>
+ <string>DefaultPersistentRepresentations</string>
+ <string>ShowDebuggerArea</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>45</integer>
+ <integer>199</integer>
+ </dict>
+ <key>geniusEditorContextNode</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>primaryEditorContextNode</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>181</integer>
+ </dict>
+ <key>rootLayoutTreeNode</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>196</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>198</integer>
+ </dict>
+ <key>children</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>contentType</key>
+ <integer>1</integer>
+ <key>documentArchivableRepresentation</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>182</integer>
+ </dict>
+ <key>orientation</key>
+ <integer>0</integer>
+ <key>parent</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>196</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>195</integer>
+ </dict>
+ <key>DocumentLocation</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>192</integer>
+ </dict>
+ <key>DomainIdentifier</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>183</integer>
+ </dict>
+ <key>IdentifierPath</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>184</integer>
+ </dict>
+ <key>IndexOfDocumentIdentifier</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>107</integer>
+ </dict>
+ </dict>
+ <string>Xcode.IDENavigableItemDomain.WorkspaceStructure</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>105</integer>
</dict>
- <key>NS.keys</key>
- <array>
- <dict>
- <key>CF$UID</key>
- <integer>188</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>189</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>190</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>191</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>192</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>193</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>194</integer>
- </dict>
- </array>
<key>NS.objects</key>
<array>
<dict>
<key>CF$UID</key>
- <integer>195</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>43</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>196</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>43</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>43</integer>
+ <integer>185</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>198</integer>
+ <integer>188</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>203</integer>
+ <integer>190</integer>
</dict>
</array>
</dict>
- <string>IDEVisibleRect</string>
- <string>IDEUnsavedDocumentFilteringEnabled</string>
- <string>IDENavigatorExpandedItemsBeforeFilteringSet</string>
- <string>IDERecentDocumentFilteringEnabled</string>
- <string>IDESCMStatusFilteringEnabled</string>
- <string>IDESelectedObjects</string>
- <string>IDEExpandedItemsSet</string>
- <string>{{0, 0}, {259, 754}}</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>197</integer>
+ <integer>187</integer>
+ </dict>
+ <key>Identifier</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>186</integer>
</dict>
- <key>NS.objects</key>
- <array/>
</dict>
+ <string>WebContentView.m</string>
<dict>
<key>$classes</key>
<array>
- <string>NSSet</string>
+ <string>IDEArchivableStringIndexPair</string>
<string>NSObject</string>
</array>
<key>$classname</key>
- <string>NSSet</string>
+ <string>IDEArchivableStringIndexPair</string>
</dict>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>105</integer>
+ <integer>187</integer>
+ </dict>
+ <key>Identifier</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>189</integer>
</dict>
- <key>NS.objects</key>
- <array>
- <dict>
- <key>CF$UID</key>
- <integer>199</integer>
- </dict>
- </array>
</dict>
+ <string>WebContentView</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>94</integer>
+ <integer>187</integer>
</dict>
- <key>NS.objects</key>
+ <key>Identifier</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>191</integer>
+ </dict>
+ </dict>
+ <string>WebContentViewExample</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>194</integer>
+ </dict>
+ <key>documentURL</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>193</integer>
+ </dict>
+ <key>timestamp</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>22</integer>
+ </dict>
+ <key>NS.string</key>
+ <string>file://localhost/Users/nick.lockwood/Dropbox/Open%20Source%20(GIT)/WebContentView/WebContentView/WebContentView.m</string>
+ </dict>
+ <dict>
+ <key>$classes</key>
<array>
- <dict>
- <key>CF$UID</key>
- <integer>200</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>201</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>202</integer>
- </dict>
+ <string>DVTDocumentLocation</string>
+ <string>NSObject</string>
+ </array>
+ <key>$classname</key>
+ <string>DVTDocumentLocation</string>
+ </dict>
+ <dict>
+ <key>$classes</key>
+ <array>
+ <string>IDENavigableItemArchivableRepresentation</string>
+ <string>NSObject</string>
</array>
+ <key>$classname</key>
+ <string>IDENavigableItemArchivableRepresentation</string>
</dict>
- <string>WebContentViewExample</string>
- <string>WebContentView</string>
- <string>WebContentView.h</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
+ <integer>198</integer>
+ </dict>
+ <key>children</key>
+ <dict>
+ <key>CF$UID</key>
<integer>197</integer>
</dict>
+ <key>contentType</key>
+ <integer>0</integer>
+ <key>documentArchivableRepresentation</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>orientation</key>
+ <integer>0</integer>
+ <key>parent</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>105</integer>
+ </dict>
<key>NS.objects</key>
<array>
<dict>
<key>CF$UID</key>
- <integer>204</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>205</integer>
+ <integer>181</integer>
</dict>
</array>
</dict>
<dict>
+ <key>$classes</key>
+ <array>
+ <string>IDEWorkspaceTabControllerLayoutTreeNode</string>
+ <string>NSObject</string>
+ </array>
+ <key>$classname</key>
+ <string>IDEWorkspaceTabControllerLayoutTreeNode</string>
+ </dict>
+ <dict>
+ <key>$classes</key>
+ <array>
+ <string>IDEWorkspaceTabControllerLayoutTree</string>
+ <string>NSObject</string>
+ </array>
+ <key>$classname</key>
+ <string>IDEWorkspaceTabControllerLayoutTree</string>
+ </dict>
+ <dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>94</integer>
+ <integer>45</integer>
</dict>
+ <key>NS.keys</key>
+ <array>
+ <dict>
+ <key>CF$UID</key>
+ <integer>201</integer>
+ </dict>
+ </array>
<key>NS.objects</key>
<array>
<dict>
<key>CF$UID</key>
- <integer>200</integer>
+ <integer>202</integer>
</dict>
</array>
</dict>
+ <string>EditorLayout_PersistentRepresentation</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>94</integer>
+ <integer>45</integer>
</dict>
- <key>NS.objects</key>
+ <key>NS.keys</key>
<array>
<dict>
<key>CF$UID</key>
- <integer>200</integer>
+ <integer>203</integer>
</dict>
+ </array>
+ <key>NS.objects</key>
+ <array>
<dict>
<key>CF$UID</key>
- <integer>201</integer>
+ <integer>204</integer>
</dict>
</array>
</dict>
+ <string>Main</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>45</integer>
+ <integer>91</integer>
</dict>
<key>NS.keys</key>
<array>
<dict>
<key>CF$UID</key>
- <integer>207</integer>
+ <integer>205</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>208</integer>
+ <integer>206</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>209</integer>
+ <integer>207</integer>
</dict>
</array>
<key>NS.objects</key>
<array>
<dict>
<key>CF$UID</key>
- <integer>210</integer>
+ <integer>208</integer>
</dict>
<dict>
<key>CF$UID</key>
@@ -2101,191 +2141,150 @@
</dict>
<dict>
<key>CF$UID</key>
- <integer>43</integer>
+ <integer>231</integer>
</dict>
</array>
</dict>
- <string>IDEStackCompressionValue</string>
- <string>IDEThreadsOrQueuesMode</string>
- <string>IDEHideAncestorForNonInterestingFrames</string>
- <integer>2</integer>
+ <string>EditorLayout_StateSavingStateDictionaries</string>
+ <string>EditorLayout_Selected</string>
+ <string>EditorLayout_Geometry</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>45</integer>
+ <integer>105</integer>
</dict>
- <key>NS.keys</key>
+ <key>NS.objects</key>
<array>
<dict>
<key>CF$UID</key>
- <integer>212</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>213</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>214</integer>
+ <integer>209</integer>
</dict>
+ </array>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>45</integer>
+ </dict>
+ <key>NS.keys</key>
+ <array>
<dict>
<key>CF$UID</key>
- <integer>215</integer>
+ <integer>210</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>216</integer>
+ <integer>211</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>217</integer>
+ <integer>212</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>218</integer>
+ <integer>213</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>219</integer>
+ <integer>214</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>220</integer>
+ <integer>215</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>221</integer>
+ <integer>216</integer>
</dict>
</array>
<key>NS.objects</key>
<array>
<dict>
<key>CF$UID</key>
- <integer>43</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>222</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>223</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>225</integer>
+ <integer>217</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>226</integer>
+ <integer>218</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>43</integer>
+ <integer>224</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>43</integer>
+ <integer>186</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>227</integer>
+ <integer>186</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>43</integer>
+ <integer>228</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>228</integer>
+ <integer>229</integer>
</dict>
</array>
</dict>
- <string>IDEErrorFilteringEnabled</string>
- <string>IDEVisibleRect</string>
- <string>IDECollapsedFiles</string>
- <string>IDEExpandedIssues</string>
- <string>IDESelectedNavigables</string>
- <string>IDEShowsByType</string>
- <string>IDESchemeFilteringEnabled</string>
- <string>IDECollapsedTypes</string>
- <string>IDERecentFilteringEnabled</string>
- <string>IDECollapsedGroups</string>
- <string>{{0, 0}, {259, 732}}</string>
+ <string>FileDataType</string>
+ <string>ArchivableRepresentation</string>
+ <string>EditorState</string>
+ <string>NavigableItemName</string>
+ <string>DocumentNavigableItemName</string>
+ <string>DocumentExtensionIdentifier</string>
+ <string>DocumentURL</string>
+ <string>public.objective-c-source</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>224</integer>
+ <integer>195</integer>
</dict>
- <key>NS.objects</key>
- <array/>
- </dict>
- <dict>
- <key>$classes</key>
- <array>
- <string>NSMutableSet</string>
- <string>NSSet</string>
- <string>NSObject</string>
- </array>
- <key>$classname</key>
- <string>NSMutableSet</string>
- </dict>
- <dict>
- <key>$class</key>
+ <key>DocumentLocation</key>
<dict>
<key>CF$UID</key>
- <integer>224</integer>
+ <integer>192</integer>
</dict>
- <key>NS.objects</key>
- <array/>
- </dict>
- <dict>
- <key>$class</key>
+ <key>DomainIdentifier</key>
<dict>
<key>CF$UID</key>
- <integer>94</integer>
+ <integer>183</integer>
</dict>
- <key>NS.objects</key>
- <array/>
- </dict>
- <dict>
- <key>$class</key>
+ <key>IdentifierPath</key>
<dict>
<key>CF$UID</key>
- <integer>224</integer>
+ <integer>219</integer>
</dict>
- <key>NS.objects</key>
- <array/>
- </dict>
- <dict>
- <key>$class</key>
+ <key>IndexOfDocumentIdentifier</key>
<dict>
<key>CF$UID</key>
- <integer>224</integer>
+ <integer>107</integer>
</dict>
- <key>NS.objects</key>
- <array/>
</dict>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>45</integer>
+ <integer>105</integer>
</dict>
- <key>NS.keys</key>
+ <key>NS.objects</key>
<array>
<dict>
<key>CF$UID</key>
- <integer>173</integer>
+ <integer>220</integer>
</dict>
- </array>
- <key>NS.objects</key>
- <array>
<dict>
<key>CF$UID</key>
- <integer>230</integer>
+ <integer>221</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>222</integer>
</dict>
</array>
</dict>
@@ -2293,115 +2292,121 @@
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>94</integer>
+ <integer>187</integer>
+ </dict>
+ <key>Identifier</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>186</integer>
</dict>
- <key>NS.objects</key>
- <array>
- <dict>
- <key>CF$UID</key>
- <integer>231</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>233</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>235</integer>
- </dict>
- </array>
</dict>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
+ <integer>187</integer>
+ </dict>
+ <key>Identifier</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>189</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>187</integer>
+ </dict>
+ <key>Identifier</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>223</integer>
+ </dict>
+ </dict>
+ <string>WebContentViewExample</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
<integer>91</integer>
</dict>
<key>NS.keys</key>
<array>
<dict>
<key>CF$UID</key>
- <integer>176</integer>
+ <integer>55</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>177</integer>
+ <integer>56</integer>
</dict>
- </array>
- <key>NS.objects</key>
- <array>
<dict>
<key>CF$UID</key>
- <integer>167</integer>
+ <integer>57</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>232</integer>
+ <integer>58</integer>
</dict>
</array>
- </dict>
- <real>260</real>
- <dict>
- <key>$class</key>
- <dict>
- <key>CF$UID</key>
- <integer>91</integer>
- </dict>
- <key>NS.keys</key>
+ <key>NS.objects</key>
<array>
<dict>
<key>CF$UID</key>
- <integer>176</integer>
+ <integer>225</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>177</integer>
+ <integer>226</integer>
</dict>
- </array>
- <key>NS.objects</key>
- <array>
<dict>
<key>CF$UID</key>
- <integer>170</integer>
+ <integer>43</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>234</integer>
+ <integer>227</integer>
</dict>
</array>
</dict>
- <real>1140</real>
+ <real>337352190.222516</real>
+ <string>{8278, 1627}</string>
+ <string>{11577, 0}</string>
+ <string>Xcode.IDEKit.EditorDocument.SourceCode</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>91</integer>
+ <integer>23</integer>
+ </dict>
+ <key>NS.base</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>0</integer>
+ </dict>
+ <key>NS.relative</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>230</integer>
+ </dict>
+ </dict>
+ <string>file://localhost/Users/nick.lockwood/Dropbox/Open%20Source%20(GIT)/WebContentView/WebContentView/WebContentView.m</string>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>105</integer>
</dict>
- <key>NS.keys</key>
- <array>
- <dict>
- <key>CF$UID</key>
- <integer>176</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>177</integer>
- </dict>
- </array>
<key>NS.objects</key>
<array>
<dict>
<key>CF$UID</key>
- <integer>236</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>237</integer>
+ <integer>232</integer>
</dict>
</array>
</dict>
- <string>IDEUtilitiesArea</string>
- <real>260</real>
+ <string>{{0, 0}, {1140, 798}}</string>
<dict>
<key>$class</key>
<dict>
@@ -2412,362 +2417,190 @@
<array>
<dict>
<key>CF$UID</key>
- <integer>239</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>240</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>241</integer>
+ <integer>234</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>242</integer>
+ <integer>235</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>243</integer>
+ <integer>236</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>244</integer>
+ <integer>237</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>245</integer>
+ <integer>238</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>246</integer>
+ <integer>239</integer>
</dict>
</array>
<key>NS.objects</key>
<array>
<dict>
<key>CF$UID</key>
- <integer>247</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>264</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>297</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>15</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>107</integer>
+ <integer>142</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>323</integer>
+ <integer>240</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>331</integer>
+ <integer>242</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>43</integer>
- </dict>
- </array>
- </dict>
- <string>layoutTree</string>
- <string>IDEEditorMode_Standard</string>
- <string>IDEEDitorArea_DebugArea</string>
- <string>IDEShowEditor</string>
- <string>EditorMode</string>
- <string>DebuggerSplitView</string>
- <string>DefaultPersistentRepresentations</string>
- <string>ShowDebuggerArea</string>
- <dict>
- <key>$class</key>
- <dict>
- <key>CF$UID</key>
- <integer>263</integer>
- </dict>
- <key>geniusEditorContextNode</key>
- <dict>
- <key>CF$UID</key>
- <integer>0</integer>
- </dict>
- <key>primaryEditorContextNode</key>
- <dict>
- <key>CF$UID</key>
- <integer>248</integer>
- </dict>
- <key>rootLayoutTreeNode</key>
- <dict>
- <key>CF$UID</key>
- <integer>260</integer>
- </dict>
- </dict>
- <dict>
- <key>$class</key>
- <dict>
- <key>CF$UID</key>
- <integer>262</integer>
- </dict>
- <key>children</key>
- <dict>
- <key>CF$UID</key>
- <integer>0</integer>
- </dict>
- <key>contentType</key>
- <integer>1</integer>
- <key>documentArchivableRepresentation</key>
- <dict>
- <key>CF$UID</key>
- <integer>249</integer>
- </dict>
- <key>orientation</key>
- <integer>0</integer>
- <key>parent</key>
- <dict>
- <key>CF$UID</key>
- <integer>260</integer>
- </dict>
- </dict>
- <dict>
- <key>$class</key>
- <dict>
- <key>CF$UID</key>
- <integer>259</integer>
- </dict>
- <key>DocumentLocation</key>
- <dict>
- <key>CF$UID</key>
- <integer>257</integer>
- </dict>
- <key>DomainIdentifier</key>
- <dict>
- <key>CF$UID</key>
- <integer>250</integer>
- </dict>
- <key>IdentifierPath</key>
- <dict>
- <key>CF$UID</key>
- <integer>251</integer>
- </dict>
- <key>IndexOfDocumentIdentifier</key>
- <dict>
- <key>CF$UID</key>
- <integer>107</integer>
- </dict>
- </dict>
- <string>Xcode.IDENavigableItemDomain.WorkspaceStructure</string>
- <dict>
- <key>$class</key>
- <dict>
- <key>CF$UID</key>
- <integer>105</integer>
- </dict>
- <key>NS.objects</key>
- <array>
- <dict>
- <key>CF$UID</key>
- <integer>252</integer>
+ <integer>142</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>254</integer>
+ <integer>246</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>255</integer>
+ <integer>257</integer>
</dict>
</array>
</dict>
+ <string>LayoutFocusMode</string>
+ <string>console</string>
+ <string>variables</string>
+ <string>LayoutMode</string>
+ <string>IDEDebugArea_SplitView</string>
+ <string>IDEDebuggerAreaSplitView</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>253</integer>
- </dict>
- <key>Identifier</key>
- <dict>
- <key>CF$UID</key>
- <integer>202</integer>
- </dict>
- </dict>
- <dict>
- <key>$classes</key>
- <array>
- <string>IDEArchivableStringIndexPair</string>
- <string>NSObject</string>
- </array>
- <key>$classname</key>
- <string>IDEArchivableStringIndexPair</string>
- </dict>
- <dict>
- <key>$class</key>
- <dict>
- <key>CF$UID</key>
- <integer>253</integer>
- </dict>
- <key>Identifier</key>
- <dict>
- <key>CF$UID</key>
- <integer>201</integer>
- </dict>
- </dict>
- <dict>
- <key>$class</key>
- <dict>
- <key>CF$UID</key>
- <integer>253</integer>
- </dict>
- <key>Identifier</key>
- <dict>
- <key>CF$UID</key>
- <integer>256</integer>
- </dict>
- </dict>
- <string>WebContentViewExample</string>
- <dict>
- <key>$class</key>
- <dict>
- <key>CF$UID</key>
- <integer>258</integer>
- </dict>
- <key>documentURL</key>
- <dict>
- <key>CF$UID</key>
- <integer>29</integer>
- </dict>
- <key>timestamp</key>
- <dict>
- <key>CF$UID</key>
- <integer>0</integer>
+ <integer>45</integer>
</dict>
- </dict>
- <dict>
- <key>$classes</key>
+ <key>NS.keys</key>
<array>
- <string>DVTDocumentLocation</string>
- <string>NSObject</string>
+ <dict>
+ <key>CF$UID</key>
+ <integer>241</integer>
+ </dict>
</array>
- <key>$classname</key>
- <string>DVTDocumentLocation</string>
- </dict>
- <dict>
- <key>$classes</key>
+ <key>NS.objects</key>
<array>
- <string>IDENavigableItemArchivableRepresentation</string>
- <string>NSObject</string>
+ <dict>
+ <key>CF$UID</key>
+ <integer>107</integer>
+ </dict>
</array>
- <key>$classname</key>
- <string>IDENavigableItemArchivableRepresentation</string>
</dict>
+ <string>ConsoleFilterMode</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>262</integer>
- </dict>
- <key>children</key>
- <dict>
- <key>CF$UID</key>
- <integer>261</integer>
- </dict>
- <key>contentType</key>
- <integer>0</integer>
- <key>documentArchivableRepresentation</key>
- <dict>
- <key>CF$UID</key>
- <integer>0</integer>
- </dict>
- <key>orientation</key>
- <integer>0</integer>
- <key>parent</key>
- <dict>
- <key>CF$UID</key>
- <integer>0</integer>
+ <integer>45</integer>
</dict>
+ <key>NS.keys</key>
+ <array>
+ <dict>
+ <key>CF$UID</key>
+ <integer>243</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>244</integer>
+ </dict>
+ </array>
+ <key>NS.objects</key>
+ <array>
+ <dict>
+ <key>CF$UID</key>
+ <integer>142</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>245</integer>
+ </dict>
+ </array>
</dict>
+ <string>VariablesViewSelectedScope</string>
+ <string>DBGVariablesViewFilterMode</string>
+ <integer>2</integer>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>105</integer>
+ <integer>45</integer>
</dict>
- <key>NS.objects</key>
+ <key>NS.keys</key>
<array>
<dict>
<key>CF$UID</key>
- <integer>248</integer>
+ <integer>247</integer>
</dict>
</array>
- </dict>
- <dict>
- <key>$classes</key>
- <array>
- <string>IDEWorkspaceTabControllerLayoutTreeNode</string>
- <string>NSObject</string>
- </array>
- <key>$classname</key>
- <string>IDEWorkspaceTabControllerLayoutTreeNode</string>
- </dict>
- <dict>
- <key>$classes</key>
+ <key>NS.objects</key>
<array>
- <string>IDEWorkspaceTabControllerLayoutTree</string>
- <string>NSObject</string>
+ <dict>
+ <key>CF$UID</key>
+ <integer>248</integer>
+ </dict>
</array>
- <key>$classname</key>
- <string>IDEWorkspaceTabControllerLayoutTree</string>
</dict>
+ <string>DVTSplitViewItems</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>45</integer>
+ <integer>94</integer>
</dict>
- <key>NS.keys</key>
+ <key>NS.objects</key>
<array>
<dict>
<key>CF$UID</key>
- <integer>265</integer>
+ <integer>249</integer>
</dict>
- </array>
- <key>NS.objects</key>
- <array>
<dict>
<key>CF$UID</key>
- <integer>266</integer>
+ <integer>254</integer>
</dict>
</array>
</dict>
- <string>EditorLayout_PersistentRepresentation</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>45</integer>
+ <integer>91</integer>
</dict>
<key>NS.keys</key>
<array>
<dict>
<key>CF$UID</key>
- <integer>267</integer>
+ <integer>250</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>251</integer>
</dict>
</array>
<key>NS.objects</key>
<array>
<dict>
<key>CF$UID</key>
- <integer>268</integer>
+ <integer>252</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>253</integer>
</dict>
</array>
</dict>
- <string>Main</string>
+ <string>DVTIdentifier</string>
+ <string>DVTViewMagnitude</string>
+ <string>VariablesView</string>
+ <real>570</real>
<dict>
<key>$class</key>
<dict>
@@ -2778,47 +2611,63 @@
<array>
<dict>
<key>CF$UID</key>
- <integer>269</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>270</integer>
+ <integer>250</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>271</integer>
+ <integer>251</integer>
</dict>
</array>
<key>NS.objects</key>
<array>
<dict>
<key>CF$UID</key>
- <integer>272</integer>
+ <integer>255</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>107</integer>
+ <integer>256</integer>
+ </dict>
+ </array>
+ </dict>
+ <string>ConsoleArea</string>
+ <real>569</real>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>45</integer>
+ </dict>
+ <key>NS.keys</key>
+ <array>
+ <dict>
+ <key>CF$UID</key>
+ <integer>247</integer>
</dict>
+ </array>
+ <key>NS.objects</key>
+ <array>
<dict>
<key>CF$UID</key>
- <integer>295</integer>
+ <integer>258</integer>
</dict>
</array>
</dict>
- <string>EditorLayout_StateSavingStateDictionaries</string>
- <string>EditorLayout_Selected</string>
- <string>EditorLayout_Geometry</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>105</integer>
+ <integer>94</integer>
</dict>
<key>NS.objects</key>
<array>
<dict>
<key>CF$UID</key>
- <integer>273</integer>
+ <integer>259</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>261</integer>
</dict>
</array>
</dict>
@@ -2826,165 +2675,214 @@
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>45</integer>
+ <integer>91</integer>
</dict>
<key>NS.keys</key>
<array>
<dict>
<key>CF$UID</key>
- <integer>274</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>275</integer>
+ <integer>250</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>276</integer>
+ <integer>251</integer>
</dict>
+ </array>
+ <key>NS.objects</key>
+ <array>
<dict>
<key>CF$UID</key>
- <integer>277</integer>
+ <integer>252</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>278</integer>
+ <integer>260</integer>
</dict>
+ </array>
+ </dict>
+ <real>570</real>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>91</integer>
+ </dict>
+ <key>NS.keys</key>
+ <array>
<dict>
<key>CF$UID</key>
- <integer>279</integer>
+ <integer>250</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>280</integer>
+ <integer>251</integer>
</dict>
</array>
<key>NS.objects</key>
<array>
<dict>
<key>CF$UID</key>
- <integer>281</integer>
- </dict>
- <dict>
- <key>CF$UID</key>
- <integer>282</integer>
+ <integer>255</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>288</integer>
+ <integer>262</integer>
</dict>
+ </array>
+ </dict>
+ <real>569</real>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>45</integer>
+ </dict>
+ <key>NS.keys</key>
+ <array>
<dict>
<key>CF$UID</key>
- <integer>202</integer>
+ <integer>247</integer>
</dict>
+ </array>
+ <key>NS.objects</key>
+ <array>
<dict>
<key>CF$UID</key>
- <integer>202</integer>
+ <integer>264</integer>
</dict>
+ </array>
+ </dict>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>94</integer>
+ </dict>
+ <key>NS.objects</key>
+ <array>
<dict>
<key>CF$UID</key>
- <integer>292</integer>
+ <integer>265</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>293</integer>
+ <integer>268</integer>
</dict>
</array>
</dict>
- <string>FileDataType</string>
- <string>ArchivableRepresentation</string>
- <string>EditorState</string>
- <string>NavigableItemName</string>
- <string>DocumentNavigableItemName</string>
- <string>DocumentExtensionIdentifier</string>
- <string>DocumentURL</string>
- <string>public.c-header</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>259</integer>
- </dict>
- <key>DocumentLocation</key>
- <dict>
- <key>CF$UID</key>
- <integer>257</integer>
- </dict>
- <key>DomainIdentifier</key>
- <dict>
- <key>CF$UID</key>
- <integer>250</integer>
- </dict>
- <key>IdentifierPath</key>
- <dict>
- <key>CF$UID</key>
- <integer>283</integer>
- </dict>
- <key>IndexOfDocumentIdentifier</key>
- <dict>
- <key>CF$UID</key>
- <integer>107</integer>
+ <integer>91</integer>
</dict>
+ <key>NS.keys</key>
+ <array>
+ <dict>
+ <key>CF$UID</key>
+ <integer>250</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>251</integer>
+ </dict>
+ </array>
+ <key>NS.objects</key>
+ <array>
+ <dict>
+ <key>CF$UID</key>
+ <integer>266</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>267</integer>
+ </dict>
+ </array>
</dict>
+ <string>IDEEditor</string>
+ <real>354</real>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>105</integer>
+ <integer>91</integer>
</dict>
- <key>NS.objects</key>
+ <key>NS.keys</key>
<array>
<dict>
<key>CF$UID</key>
- <integer>284</integer>
+ <integer>250</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>285</integer>
+ <integer>251</integer>
</dict>
+ </array>
+ <key>NS.objects</key>
+ <array>
<dict>
<key>CF$UID</key>
- <integer>286</integer>
+ <integer>269</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>270</integer>
</dict>
</array>
</dict>
+ <string>IDEDebuggerArea</string>
+ <real>444</real>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>253</integer>
- </dict>
- <key>Identifier</key>
- <dict>
- <key>CF$UID</key>
- <integer>202</integer>
+ <integer>45</integer>
</dict>
+ <key>NS.keys</key>
+ <array/>
+ <key>NS.objects</key>
+ <array/>
</dict>
+ <string>WebContentView.m</string>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>253</integer>
- </dict>
- <key>Identifier</key>
- <dict>
- <key>CF$UID</key>
- <integer>201</integer>
+ <integer>45</integer>
</dict>
+ <key>NS.keys</key>
+ <array>
+ <dict>
+ <key>CF$UID</key>
+ <integer>247</integer>
+ </dict>
+ </array>
+ <key>NS.objects</key>
+ <array>
+ <dict>
+ <key>CF$UID</key>
+ <integer>274</integer>
+ </dict>
+ </array>
</dict>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>253</integer>
- </dict>
- <key>Identifier</key>
- <dict>
- <key>CF$UID</key>
- <integer>287</integer>
+ <integer>94</integer>
</dict>
+ <key>NS.objects</key>
+ <array>
+ <dict>
+ <key>CF$UID</key>
+ <integer>275</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>278</integer>
+ </dict>
+ </array>
</dict>
- <string>WebContentViewExample</string>
<dict>
<key>$class</key>
<dict>
@@ -2995,78 +2893,106 @@
<array>
<dict>
<key>CF$UID</key>
- <integer>55</integer>
+ <integer>250</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>56</integer>
+ <integer>251</integer>
</dict>
+ </array>
+ <key>NS.objects</key>
+ <array>
<dict>
<key>CF$UID</key>
- <integer>57</integer>
+ <integer>276</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>58</integer>
+ <integer>277</integer>
</dict>
</array>
- <key>NS.objects</key>
+ </dict>
+ <string></string>
+ <real>574</real>
+ <dict>
+ <key>$class</key>
+ <dict>
+ <key>CF$UID</key>
+ <integer>91</integer>
+ </dict>
+ <key>NS.keys</key>
<array>
<dict>
<key>CF$UID</key>
- <integer>289</integer>
+ <integer>250</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>290</integer>
+ <integer>251</integer>
</dict>
+ </array>
+ <key>NS.objects</key>
+ <array>
<dict>
<key>CF$UID</key>
- <integer>43</integer>
+ <integer>276</integer>
</dict>
<dict>
<key>CF$UID</key>
- <integer>291</integer>
+ <integer>279</integer>
</dict>
</array>
</dict>
- <real>337270137.47281802</real>
- <string>{346, 1985}</string>
- <string>{44, 0}</string>
- <string>Xcode.IDEKit.EditorDocument.SourceCode</string>
- <dict>
- <key>$class</key>
- <dict>
- <key>CF$UID</key>
- <integer>23</integer>
- </dict>
- <key>NS.base</key>
- <dict>
- <key>CF$UID</key>
- <integer>0</integer>
- </dict>
- <key>NS.relative</key>
- <dict>
- <key>CF$UID</key>
- <integer>294</integer>
- </dict>
- </dict>
- <string>file://localhost/Users/nick.lockwood/Dropbox/Open%20Source%20(GIT)/WebContentView/WebContentView/WebContentView.h</string>
+ <real>224</real>
<dict>
<key>$class</key>
<dict>
<key>CF$UID</key>
- <integer>105</integer>
+ <integer>45</integer>
</dict>
+ <key>NS.keys</key>
+ <array>
+ <dict>
+ <key>CF$UID</key>
+ <integer>281</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>282</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>283</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>284</integer>
+ </dict>
+ </array>
<key>NS.objects</key>
<array>
<dict>
<key>CF$UID</key>
- <integer>296</integer>
+ <integer>285</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>302</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>281</integer>
+ </dict>
+ <dict>
+ <key>CF$UID</key>
+ <integer>306</integer>
</dict>
</array>
</dict>
- <string>{{0, 0}, {1140, 798}}</string>
+ <string>Xcode.IDEKit.Navigator.Structure</string>
+ <string>Xcode.DebuggerKit.ThreadsStacksNavigator</string>
+ <string>SelectedNavigator</string>
+ <string>Xcode.IDEKit.Navigator.Issues</string>
<dict>
<key>$class</key>
<dict>
@@ -3077,134 +3003,157 @@
<array>
<dict>
<key>CF$UID</key>
- <integer>298</integer>