├── LICENCE.md ├── README.md ├── RELEASE NOTES.md ├── WebContentView ├── WebContentView.h └── WebContentView.m ├── WebContentViewExample.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcuserdata │ │ ├── nick.lockwood.xcuserdatad │ │ └── UserInterfaceState.xcuserstate │ │ └── nick.xcuserdatad │ │ ├── UserInterfaceState.xcuserstate │ │ └── WorkspaceSettings.xcsettings └── xcuserdata │ ├── nick.lockwood.xcuserdatad │ ├── xcdebugger │ │ └── Breakpoints.xcbkptlist │ └── xcschemes │ │ ├── WebContentViewExample.xcscheme │ │ └── xcschememanagement.plist │ └── nick.xcuserdatad │ ├── xcdebugger │ └── Breakpoints.xcbkptlist │ └── xcschemes │ ├── WebContentViewExample.xcscheme │ └── xcschememanagement.plist └── WebContentViewExample ├── WebContentViewExample-Info.plist ├── WebContentViewExample-Prefix.pch ├── WebContentViewExampleAppDelegate.h ├── WebContentViewExampleAppDelegate.m ├── WebContentViewExampleViewController.h ├── WebContentViewExampleViewController.m ├── content.html ├── en.lproj ├── InfoPlist.strings ├── MainWindow.xib └── WebContentViewExampleViewController.xib ├── main.m ├── styles1.css └── styles2.css /LICENCE.md: -------------------------------------------------------------------------------- 1 | WebContentView 2 | version 1.1, September 10th, 2011 3 | 4 | Copyright (C) 2011 Charcoal Design 5 | 6 | This software is provided 'as-is', without any express or implied 7 | warranty. In no event will the authors be held liable for any damages 8 | arising from the use of this software. 9 | 10 | Permission is granted to anyone to use this software for any purpose, 11 | including commercial applications, and to alter it and redistribute it 12 | freely, subject to the following restrictions: 13 | 14 | 1. The origin of this software must not be misrepresented; you must not 15 | claim that you wrote the original software. If you use this software 16 | in a product, an acknowledgment in the product documentation would be 17 | appreciated but is not required. 18 | 19 | 2. Altered source versions must be plainly marked as such, and must not be 20 | misrepresented as being the original software. 21 | 22 | 3. This notice may not be removed or altered from any source distribution. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | *************** 2 | WARNING: THIS PROJECT IS DEPRECATED 3 | ==================================== 4 | It will not receive any future updates or bug fixes. If you are using it, please migrate to another solution. 5 | *************** 6 | 7 | 8 | Purpose 9 | -------------- 10 | 11 | WebContentView provides a simple native interface for rendering rich HTML content in an iPhone app using a UIWebView. It is not designed to work as a embedded web browser for on or offline content, it doesn't load URLs - think of it more as a "rich" version of the UITextView, where content can be set using HTML instead of plain text. 12 | 13 | 14 | Installation 15 | -------------- 16 | 17 | To use the WebContentView in your project, just drag the class files into your project. It has no dependencies. 18 | 19 | 20 | Properties 21 | --------------- 22 | 23 | Each WebContentView instance has the following properties: 24 | 25 | @property (nonatomic, retain, readonly) UIScrollView *scrollView; 26 | 27 | This is the internal UIScrollView used for scrolling the content. A native scrollview is used instead of scrolling the UIWebView because this feels more like a normal native control, and gives you more precise control over the scrolling behaviour. You can register a delegate for this scroll view if you want as the delegate is not used by WebContentView. 28 | 29 | @property (nonatomic, retain, readonly) UIWebView *webView; 30 | 31 | 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. 32 | 33 | @property (nonatomic, retain) IBOutlet UIView *headerView; 34 | 35 | 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. 36 | 37 | @property (nonatomic, retain) IBOutlet UIView *footerView; 38 | 39 | 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. 40 | 41 | @property (nonatomic, copy) NSString *content; 42 | 43 | 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 `` or `` 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. 44 | 45 | @property (nonatomic, assign) BOOL scrollEnabled; 46 | 47 | This enabled/disables scrolling on the internal UIScrollView of the WebContentView. 48 | 49 | @property (nonatomic, assign) CGFloat minimumContentHeight; 50 | 51 | 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. 52 | 53 | @property (nonatomic, assign) id delegate; 54 | 55 | This is the delegate for the WebContentView. 56 | 57 | @property (nonatomic, readonly, getter = isLoading) BOOL loading; 58 | 59 | This property can be used to detect if the content has finished loading. 60 | 61 | 62 | Methods 63 | --------------- 64 | 65 | The WebContentView class has the following shared methods: 66 | 67 | + (NSString *)defaultStyles; 68 | 69 | This returns the shared default stylesheet used by all WebContentView instances. 70 | 71 | + (NSString *)sharedStyles; 72 | 73 | This returns a shared custom stylesheet used by all WebContentView instances. 74 | 75 | + (void)setSharedStyles:(NSString *)styles; 76 | 77 | This sets the shared stylesheet used by all WebContentView instances. Any existing instances will be refreshed with the new styles if this value is set. 78 | 79 | + (void)preloadContent:(NSString *)content; 80 | 81 | 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. 82 | 83 | 84 | Each WebContentView instance has the following methods: 85 | 86 | - (void)flashScrollIndicators; 87 | 88 | This will flash the scroll bar if the contents are larger than the view bounds. 89 | 90 | - (void)sizeContentToFit; 91 | 92 | 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. 93 | 94 | 95 | Delegate methods 96 | --------------- 97 | 98 | - (void)webContentViewDidFinishLoad:(WebContentView *)webContentView; 99 | 100 | 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. 101 | 102 | - (BOOL)webContentView:(WebContentView *)webContentView shouldOpenURL:(NSURL *)URL; 103 | 104 | This method is called whenever the user taps a link in the WebContentView. By default, any WebContentView links will open in Safari, but you can override this behaviour and handle them yourself inside the app by returning NO. 105 | -------------------------------------------------------------------------------- /RELEASE NOTES.md: -------------------------------------------------------------------------------- 1 | Version 1.1 2 | 3 | - 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. 4 | - Added new minimumContentHeight property to control the placement of the footer view (default placement is now different from earlier versions - check the documentation.) 5 | - Renamed header and footer to headerView and footerView. 6 | - Improved performance when first displaying a view by preloading WebKit. 7 | 8 | Version 1.0.4 9 | 10 | - Fixed race condition where setting web content could cause infinite loop. 11 | 12 | Version 1.0.3 13 | 14 | - Removed 4.0-specific API reference so that WebContentView can be used on iOS 3.x 15 | - Added -webkit-touch-callout: none; to the default stylesheet to prevent popup when touching links or images. 16 | 17 | Version 1.0.2 18 | 19 | - Fixed performance issues when scrolling large amounts of content. 20 | 21 | Version 1.0.1 22 | 23 | - Added -webkit-text-size-adjust: none to default css to prevent arbitrary text resizing on iPhone. 24 | - Renamed defaultStyles to sharedStyles and modified behaviour so that sharedStyles are applied after default style settings. 25 | - Added IBOutlet tag to delegate property so it can be set in Interface Builder. 26 | - Extended example to include delegate functionality 27 | 28 | Version 1.0 29 | 30 | - Initial release -------------------------------------------------------------------------------- /WebContentView/WebContentView.h: -------------------------------------------------------------------------------- 1 | // 2 | // WebContentView.h 3 | // 4 | // Version 1.1 5 | // 6 | // Created by Nick Lockwood on 07/05/2011. 7 | // Copyright 2011 Charcoal Design. All rights reserved. 8 | // 9 | // Get the latest version of WebContentView from either of these locations: 10 | // 11 | // http://charcoaldesign.co.uk/source/cocoa#webcontentview 12 | // https://github.com/nicklockwood/WebContentView 13 | // 14 | // This software is provided 'as-is', without any express or implied 15 | // warranty. In no event will the authors be held liable for any damages 16 | // arising from the use of this software. 17 | // 18 | // Permission is granted to anyone to use this software for any purpose, 19 | // including commercial applications, and to alter it and redistribute it 20 | // freely, subject to the following restrictions: 21 | // 22 | // 1. The origin of this software must not be misrepresented; you must not 23 | // claim that you wrote the original software. If you use this software 24 | // in a product, an acknowledgment in the product documentation would be 25 | // appreciated but is not required. 26 | // 27 | // 2. Altered source versions must be plainly marked as such, and must not be 28 | // misrepresented as being the original software. 29 | // 30 | // 3. This notice may not be removed or altered from any source distribution. 31 | // 32 | 33 | #import 34 | 35 | 36 | @class WebContentView; 37 | 38 | 39 | @protocol WebContentViewDelegate 40 | 41 | @optional 42 | 43 | - (void)webContentViewDidFinishLoad:(WebContentView *)webContentView; 44 | - (BOOL)webContentView:(WebContentView *)webContentView shouldOpenURL:(NSURL *)URL; 45 | 46 | @end 47 | 48 | 49 | @interface WebContentView : UIView 50 | 51 | + (NSString *)defaultStyles; 52 | 53 | + (NSString *)sharedStyles; 54 | + (void)setSharedStyles:(NSString *)styles; 55 | + (void)preloadContent:(NSString *)content; 56 | 57 | @property (nonatomic, retain, readonly) UIScrollView *scrollView; 58 | @property (nonatomic, retain, readonly) UIWebView *webView; 59 | @property (nonatomic, retain) IBOutlet UIView *headerView; 60 | @property (nonatomic, retain) IBOutlet UIView *footerView; 61 | @property (nonatomic, assign) IBOutlet id delegate; 62 | 63 | @property (nonatomic, copy) NSString *content; 64 | @property (nonatomic, assign) BOOL scrollEnabled; 65 | @property (nonatomic, assign) CGFloat minimumContentHeight; 66 | @property (nonatomic, readonly, getter = isLoading) BOOL loading; 67 | 68 | - (void)flashScrollIndicators; 69 | - (void)sizeContentToFit; 70 | 71 | @end 72 | -------------------------------------------------------------------------------- /WebContentView/WebContentView.m: -------------------------------------------------------------------------------- 1 | // 2 | // WebContentView.m 3 | // 4 | // Version 1.1 5 | // 6 | // Created by Nick Lockwood on 07/05/2011. 7 | // Copyright 2011 Charcoal Design. All rights reserved. 8 | // 9 | // Get the latest version of WebContentView from either of these locations: 10 | // 11 | // http://charcoaldesign.co.uk/source/cocoa#webcontentview 12 | // https://github.com/nicklockwood/WebContentView 13 | // 14 | // This software is provided 'as-is', without any express or implied 15 | // warranty. In no event will the authors be held liable for any damages 16 | // arising from the use of this software. 17 | // 18 | // Permission is granted to anyone to use this software for any purpose, 19 | // including commercial applications, and to alter it and redistribute it 20 | // freely, subject to the following restrictions: 21 | // 22 | // 1. The origin of this software must not be misrepresented; you must not 23 | // claim that you wrote the original software. If you use this software 24 | // in a product, an acknowledgment in the product documentation would be 25 | // appreciated but is not required. 26 | // 27 | // 2. Altered source versions must be plainly marked as such, and must not be 28 | // misrepresented as being the original software. 29 | // 30 | // 3. This notice may not be removed or altered from any source distribution. 31 | // 32 | 33 | #import "WebContentView.h" 34 | 35 | 36 | #define MAX_CACHED 10 37 | 38 | 39 | NSString *const WebContentViewDefaultStylesUpdatedNotification = @"WebContentViewDefaultStylesUpdatedNotification"; 40 | static NSString *sharedStyles = nil; 41 | static NSString *const defaultStyles = @"\ 42 | * { -webkit-text-size-adjust: none; -webkit-touch-callout: none; }\ 43 | body { font: 17px Helvetica; margin: 0; padding: 5px; }\ 44 | h1 { fonts-size: 19px; }\ 45 | h2 { fonts-size: 18px; }\ 46 | p, h1 { padding: 0; margin: 0 0 10px 0; }"; 47 | 48 | 49 | @interface WebContentView () 50 | 51 | @property (nonatomic, retain) UIScrollView *scrollView; 52 | @property (nonatomic, retain) UIWebView *webView; 53 | @property (nonatomic, assign) CGSize frameSize; 54 | 55 | @end 56 | 57 | 58 | @implementation WebContentView 59 | 60 | @synthesize scrollView; 61 | @synthesize webView; 62 | @synthesize headerView; 63 | @synthesize footerView; 64 | @synthesize content; 65 | @synthesize scrollEnabled; 66 | @synthesize delegate; 67 | @synthesize frameSize; 68 | @synthesize minimumContentHeight; 69 | 70 | 71 | + (void)load 72 | { 73 | //ensure the we get initialized on app launch 74 | [[NSNotificationCenter defaultCenter] addObserver:self 75 | selector:@selector(initialize) 76 | name:UIApplicationDidFinishLaunchingNotification 77 | object:nil]; 78 | } 79 | 80 | + (void)initialize 81 | { 82 | //'warm up' webkit 83 | [[[UIWebView alloc] init] autorelease]; 84 | 85 | //register for cache clearing 86 | [[NSNotificationCenter defaultCenter] addObserver:self 87 | selector:@selector(clearCache) 88 | name:UIApplicationDidReceiveMemoryWarningNotification 89 | object:nil]; 90 | } 91 | 92 | + (NSString *)defaultStyles 93 | { 94 | return defaultStyles; 95 | } 96 | 97 | + (NSString *)sharedStyles 98 | { 99 | return sharedStyles; 100 | } 101 | 102 | + (void)setSharedStyles:(NSString *)styles 103 | { 104 | if (sharedStyles != styles) 105 | { 106 | [sharedStyles release]; 107 | sharedStyles = [styles retain]; 108 | 109 | [[NSNotificationCenter defaultCenter] postNotificationName:WebContentViewDefaultStylesUpdatedNotification object:nil]; 110 | } 111 | } 112 | 113 | static NSMutableArray *cachedViews = nil; 114 | 115 | + (WebContentView *)cachedViewForContent:(NSString *)content 116 | { 117 | if (cachedViews == nil) 118 | { 119 | cachedViews = [[NSMutableArray alloc] init]; 120 | } 121 | for (WebContentView *view in cachedViews) 122 | { 123 | if ([view retainCount] == 1 && [view.content isEqualToString:content]) 124 | { 125 | return view; 126 | } 127 | } 128 | return nil; 129 | } 130 | 131 | + (void)preloadContent:(NSString *)content 132 | { 133 | if (![self cachedViewForContent:content]) 134 | { 135 | if ([cachedViews count] == MAX_CACHED) 136 | { 137 | [cachedViews removeObjectAtIndex:0]; 138 | } 139 | WebContentView *view = [[WebContentView alloc] initWithFrame:CGRectMake(0, 0, 1, 1)]; 140 | view.content = content; 141 | [cachedViews addObject:view]; 142 | [view release]; 143 | } 144 | } 145 | 146 | + (void)clearCache 147 | { 148 | [cachedViews removeAllObjects]; 149 | } 150 | 151 | - (void)disableScroll:(UIView *)view 152 | { 153 | if ([view isKindOfClass:[UIScrollView class]]) 154 | { 155 | ((UIScrollView *)view).scrollEnabled = NO; 156 | } 157 | else 158 | { 159 | for (UIView *child in view.subviews) 160 | { 161 | [self disableScroll:child]; 162 | } 163 | } 164 | } 165 | 166 | - (void)setWebView:(UIWebView *)_webView 167 | { 168 | if (webView != _webView) 169 | { 170 | [webView removeFromSuperview]; 171 | webView.delegate = nil; 172 | [webView release]; 173 | webView = [_webView retain]; 174 | webView.frame = self.bounds; 175 | webView.scalesPageToFit = NO; 176 | webView.backgroundColor = [UIColor clearColor]; 177 | webView.opaque = NO; 178 | webView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; 179 | webView.delegate = self; 180 | [scrollView addSubview:webView]; 181 | [self disableScroll:webView]; 182 | } 183 | } 184 | 185 | - (void)setup 186 | { 187 | frameSize = CGSizeZero; 188 | if (CGRectEqualToRect(self.bounds, CGRectZero)) 189 | { 190 | self.bounds = CGRectMake(0, 0, 1, 1); 191 | } 192 | 193 | //defaults 194 | scrollEnabled = YES; 195 | minimumContentHeight = 0.0f; 196 | 197 | scrollView = [[UIScrollView alloc] initWithFrame:self.bounds]; 198 | scrollView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; 199 | scrollView.scrollEnabled = scrollEnabled; 200 | [self addSubview:scrollView]; 201 | 202 | self.webView = [[[UIWebView alloc] initWithFrame:self.bounds] autorelease]; 203 | 204 | [[NSNotificationCenter defaultCenter] addObserver:self 205 | selector:@selector(refreshStyles) 206 | name:WebContentViewDefaultStylesUpdatedNotification 207 | object:nil]; 208 | } 209 | 210 | - (id)initWithFrame:(CGRect)frame 211 | { 212 | if ((self = [super initWithFrame:frame])) 213 | { 214 | [self setup]; 215 | } 216 | return self; 217 | } 218 | 219 | - (id)initWithCoder:(NSCoder *)aDecoder 220 | { 221 | if ((self = [super initWithCoder:aDecoder])) 222 | { 223 | [self setup]; 224 | } 225 | return self; 226 | } 227 | 228 | - (BOOL)isLoading 229 | { 230 | return webView.loading; 231 | } 232 | 233 | - (void)layoutSubviews 234 | { 235 | [super layoutSubviews]; 236 | if (!CGSizeEqualToSize(self.frame.size, frameSize)) 237 | { 238 | frameSize = self.frame.size; 239 | [self sizeContentToFit]; 240 | [self performSelector:@selector(sizeContentToFit) withObject:nil afterDelay:0.0f]; 241 | } 242 | } 243 | 244 | - (void)refreshStyles 245 | { 246 | self.content = content; 247 | } 248 | 249 | - (NSString *)allStyles 250 | { 251 | NSArray *lines = [([defaultStyles stringByReplacingOccurrencesOfString:@"'" withString:@"\""] ?: @"")componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]]; 252 | lines = [lines arrayByAddingObjectsFromArray:[([sharedStyles stringByReplacingOccurrencesOfString:@"'" withString:@"\""] ?: @"") componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]]]; 253 | return [lines componentsJoinedByString:@" "]; 254 | } 255 | 256 | - (void)setContent:(NSString *)_content 257 | { 258 | if (content != _content) 259 | { 260 | [content release]; 261 | content = [_content retain]; 262 | } 263 | 264 | WebContentView *view = [[self class] cachedViewForContent:content]; 265 | if (view) 266 | { 267 | [self setWebView:view.webView]; 268 | } 269 | else 270 | { 271 | NSString *html = content ?: @""; 272 | NSString *style = [NSString stringWithFormat:@"", [self allStyles]]; 273 | if ([html rangeOfString:@""].location == NSNotFound && 274 | [html rangeOfString:@""].location == NSNotFound) 275 | { 276 | html = [NSString stringWithFormat:@"\ 277 | %@%@", style, html]; 278 | } 279 | else 280 | { 281 | style = [style stringByAppendingString:@""]; 282 | html = [html stringByReplacingOccurrencesOfString:@"" withString:style]; 283 | html = [html stringByReplacingOccurrencesOfString:@"" withString:style]; 284 | } 285 | [webView loadHTMLString:html baseURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] resourcePath]]]; 286 | } 287 | } 288 | 289 | - (void)setScrollEnabled:(BOOL)_scrollEnabled 290 | { 291 | if (scrollEnabled != _scrollEnabled) 292 | { 293 | scrollEnabled = _scrollEnabled; 294 | scrollView.scrollEnabled = scrollEnabled; 295 | } 296 | } 297 | 298 | - (void)sizeContentToFit 299 | { 300 | CGFloat headerHeight = 0; 301 | if (headerView) 302 | { 303 | headerHeight = headerView.frame.size.height; 304 | headerView.frame = CGRectMake(0, 0, self.bounds.size.width, headerHeight); 305 | } 306 | CGFloat footerHeight = 0; 307 | if (footerView) 308 | { 309 | footerHeight = footerView.frame.size.height; 310 | } 311 | 312 | CGFloat height = minimumContentHeight - headerHeight - footerHeight; 313 | webView.frame = CGRectMake(0, headerHeight, self.bounds.size.width, fmaxf(10.0f, height)); 314 | [webView sizeToFit]; 315 | 316 | if (footerView) 317 | { 318 | footerView.frame = CGRectMake(0, webView.frame.origin.y + webView.frame.size.height, self.bounds.size.width, footerHeight); 319 | } 320 | scrollView.contentSize = CGSizeMake(self.bounds.size.width, webView.frame.size.height + headerHeight + footerHeight); 321 | } 322 | 323 | - (void)flashScrollIndicatorsIfApplicable 324 | { 325 | if (self.loading) 326 | { 327 | //try again in a bit 328 | [self performSelector:@selector(flashScrollIndicatorsIfApplicable) 329 | withObject:nil afterDelay:0.1f]; 330 | } 331 | else if (scrollView.contentSize.height > scrollView.bounds.size.height) 332 | { 333 | [scrollView flashScrollIndicators]; 334 | } 335 | } 336 | 337 | - (void)flashScrollIndicators 338 | { 339 | //delay in case view is still refreshing 340 | [self performSelector:@selector(flashScrollIndicatorsIfApplicable) 341 | withObject:nil afterDelay:0.1f]; 342 | } 343 | 344 | - (void)setHeaderView:(UIView *)_headerView 345 | { 346 | if (headerView != _headerView) 347 | { 348 | [headerView removeFromSuperview]; 349 | [headerView release]; 350 | headerView = [_headerView retain]; 351 | if (headerView) 352 | { 353 | [scrollView addSubview:headerView]; 354 | } 355 | } 356 | [self sizeContentToFit]; 357 | } 358 | 359 | - (void)setFooterView:(UIView *)_footerView 360 | { 361 | if (footerView != _footerView) 362 | { 363 | [footerView removeFromSuperview]; 364 | [footerView release]; 365 | footerView = [_footerView retain]; 366 | if (footerView) 367 | { 368 | [scrollView addSubview:footerView]; 369 | } 370 | } 371 | [self sizeContentToFit]; 372 | } 373 | 374 | - (void)dealloc 375 | { 376 | [[NSNotificationCenter defaultCenter] removeObserver:self]; 377 | [scrollView release]; 378 | [webView release]; 379 | [headerView release]; 380 | [footerView release]; 381 | [super dealloc]; 382 | } 383 | 384 | #pragma mark - 385 | #pragma mark UIWebview delegate 386 | 387 | - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType 388 | { 389 | if (navigationType == UIWebViewNavigationTypeLinkClicked || 390 | navigationType == UIWebViewNavigationTypeFormSubmitted) 391 | { 392 | if ([delegate respondsToSelector:@selector(webContentView:shouldOpenURL:)]) 393 | { 394 | if (![delegate webContentView:self shouldOpenURL:[request URL]]) 395 | { 396 | return NO; 397 | } 398 | } 399 | [[UIApplication sharedApplication] openURL:[request URL]]; 400 | return NO; 401 | } 402 | return YES; 403 | } 404 | 405 | - (void)webViewDidFinishLoad:(UIWebView *)_webView 406 | { 407 | [self sizeContentToFit]; 408 | [self performSelector:@selector(sizeContentToFit) withObject:nil afterDelay:0.0f]; 409 | 410 | if ([delegate respondsToSelector:@selector(webContentViewDidFinishLoad:)]) 411 | { 412 | [(NSObject *)delegate performSelector:@selector(webContentViewDidFinishLoad:) withObject:self afterDelay:0.2]; 413 | } 414 | } 415 | 416 | @end 417 | -------------------------------------------------------------------------------- /WebContentViewExample.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 010D927D13E0C81300158C07 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 010D927C13E0C81300158C07 /* UIKit.framework */; }; 11 | 010D927F13E0C81300158C07 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 010D927E13E0C81300158C07 /* Foundation.framework */; }; 12 | 010D928113E0C81300158C07 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 010D928013E0C81300158C07 /* CoreGraphics.framework */; }; 13 | 010D928713E0C81300158C07 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 010D928513E0C81300158C07 /* InfoPlist.strings */; }; 14 | 010D928913E0C81300158C07 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 010D928813E0C81300158C07 /* main.m */; }; 15 | 010D928D13E0C81300158C07 /* WebContentViewExampleAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 010D928C13E0C81300158C07 /* WebContentViewExampleAppDelegate.m */; }; 16 | 010D929013E0C81300158C07 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 010D928E13E0C81300158C07 /* MainWindow.xib */; }; 17 | 010D929313E0C81300158C07 /* WebContentViewExampleViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 010D929213E0C81300158C07 /* WebContentViewExampleViewController.m */; }; 18 | 010D929613E0C81300158C07 /* WebContentViewExampleViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 010D929413E0C81300158C07 /* WebContentViewExampleViewController.xib */; }; 19 | 013AFD0B13E9F4D6009B78F6 /* styles2.css in Resources */ = {isa = PBXBuildFile; fileRef = 013AFD0A13E9F4D5009B78F6 /* styles2.css */; }; 20 | 01F015CD13E4BABE005A7E3D /* WebContentView.m in Sources */ = {isa = PBXBuildFile; fileRef = 01F015CC13E4BABE005A7E3D /* WebContentView.m */; }; 21 | 01F015CF13E4BFE8005A7E3D /* content.html in Resources */ = {isa = PBXBuildFile; fileRef = 01F015CE13E4BFE8005A7E3D /* content.html */; }; 22 | 01F015D113E4C077005A7E3D /* styles1.css in Resources */ = {isa = PBXBuildFile; fileRef = 01F015D013E4C077005A7E3D /* styles1.css */; }; 23 | /* End PBXBuildFile section */ 24 | 25 | /* Begin PBXFileReference section */ 26 | 010D927813E0C81300158C07 /* WebContentViewExample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = WebContentViewExample.app; sourceTree = BUILT_PRODUCTS_DIR; }; 27 | 010D927C13E0C81300158C07 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; 28 | 010D927E13E0C81300158C07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 29 | 010D928013E0C81300158C07 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; 30 | 010D928413E0C81300158C07 /* WebContentViewExample-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "WebContentViewExample-Info.plist"; sourceTree = ""; }; 31 | 010D928613E0C81300158C07 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; 32 | 010D928813E0C81300158C07 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 33 | 010D928A13E0C81300158C07 /* WebContentViewExample-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "WebContentViewExample-Prefix.pch"; sourceTree = ""; }; 34 | 010D928B13E0C81300158C07 /* WebContentViewExampleAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebContentViewExampleAppDelegate.h; sourceTree = ""; }; 35 | 010D928C13E0C81300158C07 /* WebContentViewExampleAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = WebContentViewExampleAppDelegate.m; sourceTree = ""; }; 36 | 010D928F13E0C81300158C07 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MainWindow.xib; sourceTree = ""; }; 37 | 010D929113E0C81300158C07 /* WebContentViewExampleViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WebContentViewExampleViewController.h; sourceTree = ""; }; 38 | 010D929213E0C81300158C07 /* WebContentViewExampleViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = WebContentViewExampleViewController.m; sourceTree = ""; }; 39 | 010D929513E0C81300158C07 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/WebContentViewExampleViewController.xib; sourceTree = ""; }; 40 | 013AFD0A13E9F4D5009B78F6 /* styles2.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = styles2.css; sourceTree = ""; }; 41 | 01F015CB13E4BABE005A7E3D /* WebContentView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebContentView.h; sourceTree = ""; }; 42 | 01F015CC13E4BABE005A7E3D /* WebContentView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WebContentView.m; sourceTree = ""; }; 43 | 01F015CE13E4BFE8005A7E3D /* content.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = content.html; sourceTree = ""; }; 44 | 01F015D013E4C077005A7E3D /* styles1.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = styles1.css; sourceTree = ""; }; 45 | /* End PBXFileReference section */ 46 | 47 | /* Begin PBXFrameworksBuildPhase section */ 48 | 010D927513E0C81300158C07 /* Frameworks */ = { 49 | isa = PBXFrameworksBuildPhase; 50 | buildActionMask = 2147483647; 51 | files = ( 52 | 010D927D13E0C81300158C07 /* UIKit.framework in Frameworks */, 53 | 010D927F13E0C81300158C07 /* Foundation.framework in Frameworks */, 54 | 010D928113E0C81300158C07 /* CoreGraphics.framework in Frameworks */, 55 | ); 56 | runOnlyForDeploymentPostprocessing = 0; 57 | }; 58 | /* End PBXFrameworksBuildPhase section */ 59 | 60 | /* Begin PBXGroup section */ 61 | 010D926D13E0C81200158C07 = { 62 | isa = PBXGroup; 63 | children = ( 64 | 01F015CA13E4BABE005A7E3D /* WebContentView */, 65 | 010D928213E0C81300158C07 /* WebContentViewExample */, 66 | 010D927B13E0C81300158C07 /* Frameworks */, 67 | 010D927913E0C81300158C07 /* Products */, 68 | ); 69 | sourceTree = ""; 70 | }; 71 | 010D927913E0C81300158C07 /* Products */ = { 72 | isa = PBXGroup; 73 | children = ( 74 | 010D927813E0C81300158C07 /* WebContentViewExample.app */, 75 | ); 76 | name = Products; 77 | sourceTree = ""; 78 | }; 79 | 010D927B13E0C81300158C07 /* Frameworks */ = { 80 | isa = PBXGroup; 81 | children = ( 82 | 010D927C13E0C81300158C07 /* UIKit.framework */, 83 | 010D927E13E0C81300158C07 /* Foundation.framework */, 84 | 010D928013E0C81300158C07 /* CoreGraphics.framework */, 85 | ); 86 | name = Frameworks; 87 | sourceTree = ""; 88 | }; 89 | 010D928213E0C81300158C07 /* WebContentViewExample */ = { 90 | isa = PBXGroup; 91 | children = ( 92 | 010D928B13E0C81300158C07 /* WebContentViewExampleAppDelegate.h */, 93 | 010D928C13E0C81300158C07 /* WebContentViewExampleAppDelegate.m */, 94 | 010D928E13E0C81300158C07 /* MainWindow.xib */, 95 | 010D929113E0C81300158C07 /* WebContentViewExampleViewController.h */, 96 | 010D929213E0C81300158C07 /* WebContentViewExampleViewController.m */, 97 | 010D929413E0C81300158C07 /* WebContentViewExampleViewController.xib */, 98 | 010D928313E0C81300158C07 /* Supporting Files */, 99 | 01F015CE13E4BFE8005A7E3D /* content.html */, 100 | 01F015D013E4C077005A7E3D /* styles1.css */, 101 | 013AFD0A13E9F4D5009B78F6 /* styles2.css */, 102 | ); 103 | path = WebContentViewExample; 104 | sourceTree = ""; 105 | }; 106 | 010D928313E0C81300158C07 /* Supporting Files */ = { 107 | isa = PBXGroup; 108 | children = ( 109 | 010D928413E0C81300158C07 /* WebContentViewExample-Info.plist */, 110 | 010D928513E0C81300158C07 /* InfoPlist.strings */, 111 | 010D928813E0C81300158C07 /* main.m */, 112 | 010D928A13E0C81300158C07 /* WebContentViewExample-Prefix.pch */, 113 | ); 114 | name = "Supporting Files"; 115 | sourceTree = ""; 116 | }; 117 | 01F015CA13E4BABE005A7E3D /* WebContentView */ = { 118 | isa = PBXGroup; 119 | children = ( 120 | 01F015CB13E4BABE005A7E3D /* WebContentView.h */, 121 | 01F015CC13E4BABE005A7E3D /* WebContentView.m */, 122 | ); 123 | path = WebContentView; 124 | sourceTree = ""; 125 | }; 126 | /* End PBXGroup section */ 127 | 128 | /* Begin PBXNativeTarget section */ 129 | 010D927713E0C81300158C07 /* WebContentViewExample */ = { 130 | isa = PBXNativeTarget; 131 | buildConfigurationList = 010D929913E0C81300158C07 /* Build configuration list for PBXNativeTarget "WebContentViewExample" */; 132 | buildPhases = ( 133 | 010D927413E0C81300158C07 /* Sources */, 134 | 010D927513E0C81300158C07 /* Frameworks */, 135 | 010D927613E0C81300158C07 /* Resources */, 136 | ); 137 | buildRules = ( 138 | ); 139 | dependencies = ( 140 | ); 141 | name = WebContentViewExample; 142 | productName = WebContentViewExample; 143 | productReference = 010D927813E0C81300158C07 /* WebContentViewExample.app */; 144 | productType = "com.apple.product-type.application"; 145 | }; 146 | /* End PBXNativeTarget section */ 147 | 148 | /* Begin PBXProject section */ 149 | 010D926F13E0C81200158C07 /* Project object */ = { 150 | isa = PBXProject; 151 | buildConfigurationList = 010D927213E0C81200158C07 /* Build configuration list for PBXProject "WebContentViewExample" */; 152 | compatibilityVersion = "Xcode 3.2"; 153 | developmentRegion = English; 154 | hasScannedForEncodings = 0; 155 | knownRegions = ( 156 | en, 157 | ); 158 | mainGroup = 010D926D13E0C81200158C07; 159 | productRefGroup = 010D927913E0C81300158C07 /* Products */; 160 | projectDirPath = ""; 161 | projectRoot = ""; 162 | targets = ( 163 | 010D927713E0C81300158C07 /* WebContentViewExample */, 164 | ); 165 | }; 166 | /* End PBXProject section */ 167 | 168 | /* Begin PBXResourcesBuildPhase section */ 169 | 010D927613E0C81300158C07 /* Resources */ = { 170 | isa = PBXResourcesBuildPhase; 171 | buildActionMask = 2147483647; 172 | files = ( 173 | 010D928713E0C81300158C07 /* InfoPlist.strings in Resources */, 174 | 010D929013E0C81300158C07 /* MainWindow.xib in Resources */, 175 | 010D929613E0C81300158C07 /* WebContentViewExampleViewController.xib in Resources */, 176 | 01F015CF13E4BFE8005A7E3D /* content.html in Resources */, 177 | 01F015D113E4C077005A7E3D /* styles1.css in Resources */, 178 | 013AFD0B13E9F4D6009B78F6 /* styles2.css in Resources */, 179 | ); 180 | runOnlyForDeploymentPostprocessing = 0; 181 | }; 182 | /* End PBXResourcesBuildPhase section */ 183 | 184 | /* Begin PBXSourcesBuildPhase section */ 185 | 010D927413E0C81300158C07 /* Sources */ = { 186 | isa = PBXSourcesBuildPhase; 187 | buildActionMask = 2147483647; 188 | files = ( 189 | 010D928913E0C81300158C07 /* main.m in Sources */, 190 | 010D928D13E0C81300158C07 /* WebContentViewExampleAppDelegate.m in Sources */, 191 | 010D929313E0C81300158C07 /* WebContentViewExampleViewController.m in Sources */, 192 | 01F015CD13E4BABE005A7E3D /* WebContentView.m in Sources */, 193 | ); 194 | runOnlyForDeploymentPostprocessing = 0; 195 | }; 196 | /* End PBXSourcesBuildPhase section */ 197 | 198 | /* Begin PBXVariantGroup section */ 199 | 010D928513E0C81300158C07 /* InfoPlist.strings */ = { 200 | isa = PBXVariantGroup; 201 | children = ( 202 | 010D928613E0C81300158C07 /* en */, 203 | ); 204 | name = InfoPlist.strings; 205 | sourceTree = ""; 206 | }; 207 | 010D928E13E0C81300158C07 /* MainWindow.xib */ = { 208 | isa = PBXVariantGroup; 209 | children = ( 210 | 010D928F13E0C81300158C07 /* en */, 211 | ); 212 | name = MainWindow.xib; 213 | sourceTree = ""; 214 | }; 215 | 010D929413E0C81300158C07 /* WebContentViewExampleViewController.xib */ = { 216 | isa = PBXVariantGroup; 217 | children = ( 218 | 010D929513E0C81300158C07 /* en */, 219 | ); 220 | name = WebContentViewExampleViewController.xib; 221 | sourceTree = ""; 222 | }; 223 | /* End PBXVariantGroup section */ 224 | 225 | /* Begin XCBuildConfiguration section */ 226 | 010D929713E0C81300158C07 /* Debug */ = { 227 | isa = XCBuildConfiguration; 228 | buildSettings = { 229 | ALWAYS_SEARCH_USER_PATHS = NO; 230 | ARCHS = "$(ARCHS_STANDARD_32_BIT)"; 231 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 232 | COPY_PHASE_STRIP = NO; 233 | GCC_C_LANGUAGE_STANDARD = gnu99; 234 | GCC_DYNAMIC_NO_PIC = NO; 235 | GCC_OPTIMIZATION_LEVEL = 0; 236 | GCC_PREPROCESSOR_DEFINITIONS = ( 237 | "DEBUG=1", 238 | "$(inherited)", 239 | ); 240 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 241 | GCC_VERSION = com.apple.compilers.llvmgcc42; 242 | GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; 243 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 244 | GCC_WARN_UNUSED_VARIABLE = YES; 245 | IPHONEOS_DEPLOYMENT_TARGET = 4.3; 246 | SDKROOT = iphoneos; 247 | }; 248 | name = Debug; 249 | }; 250 | 010D929813E0C81300158C07 /* Release */ = { 251 | isa = XCBuildConfiguration; 252 | buildSettings = { 253 | ALWAYS_SEARCH_USER_PATHS = NO; 254 | ARCHS = "$(ARCHS_STANDARD_32_BIT)"; 255 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 256 | COPY_PHASE_STRIP = YES; 257 | GCC_C_LANGUAGE_STANDARD = gnu99; 258 | GCC_VERSION = com.apple.compilers.llvmgcc42; 259 | GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; 260 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 261 | GCC_WARN_UNUSED_VARIABLE = YES; 262 | IPHONEOS_DEPLOYMENT_TARGET = 4.3; 263 | OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1"; 264 | SDKROOT = iphoneos; 265 | VALIDATE_PRODUCT = YES; 266 | }; 267 | name = Release; 268 | }; 269 | 010D929A13E0C81300158C07 /* Debug */ = { 270 | isa = XCBuildConfiguration; 271 | buildSettings = { 272 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 273 | GCC_PREFIX_HEADER = "WebContentViewExample/WebContentViewExample-Prefix.pch"; 274 | INFOPLIST_FILE = "WebContentViewExample/WebContentViewExample-Info.plist"; 275 | PRODUCT_NAME = "$(TARGET_NAME)"; 276 | WRAPPER_EXTENSION = app; 277 | }; 278 | name = Debug; 279 | }; 280 | 010D929B13E0C81300158C07 /* Release */ = { 281 | isa = XCBuildConfiguration; 282 | buildSettings = { 283 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 284 | GCC_PREFIX_HEADER = "WebContentViewExample/WebContentViewExample-Prefix.pch"; 285 | INFOPLIST_FILE = "WebContentViewExample/WebContentViewExample-Info.plist"; 286 | PRODUCT_NAME = "$(TARGET_NAME)"; 287 | WRAPPER_EXTENSION = app; 288 | }; 289 | name = Release; 290 | }; 291 | /* End XCBuildConfiguration section */ 292 | 293 | /* Begin XCConfigurationList section */ 294 | 010D927213E0C81200158C07 /* Build configuration list for PBXProject "WebContentViewExample" */ = { 295 | isa = XCConfigurationList; 296 | buildConfigurations = ( 297 | 010D929713E0C81300158C07 /* Debug */, 298 | 010D929813E0C81300158C07 /* Release */, 299 | ); 300 | defaultConfigurationIsVisible = 0; 301 | defaultConfigurationName = Release; 302 | }; 303 | 010D929913E0C81300158C07 /* Build configuration list for PBXNativeTarget "WebContentViewExample" */ = { 304 | isa = XCConfigurationList; 305 | buildConfigurations = ( 306 | 010D929A13E0C81300158C07 /* Debug */, 307 | 010D929B13E0C81300158C07 /* Release */, 308 | ); 309 | defaultConfigurationIsVisible = 0; 310 | defaultConfigurationName = Release; 311 | }; 312 | /* End XCConfigurationList section */ 313 | }; 314 | rootObject = 010D926F13E0C81200158C07 /* Project object */; 315 | } 316 | -------------------------------------------------------------------------------- /WebContentViewExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /WebContentViewExample.xcodeproj/project.xcworkspace/xcuserdata/nick.lockwood.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | $archiver 6 | NSKeyedArchiver 7 | $objects 8 | 9 | $null 10 | 11 | $class 12 | 13 | CF$UID 14 | 91 15 | 16 | NS.keys 17 | 18 | 19 | CF$UID 20 | 2 21 | 22 | 23 | CF$UID 24 | 3 25 | 26 | 27 | NS.objects 28 | 29 | 30 | CF$UID 31 | 4 32 | 33 | 34 | CF$UID 35 | 153 36 | 37 | 38 | 39 | IDEWorkspaceDocument 40 | DE6311DF-56C8-4690-BCE8-C6555F365E38 41 | 42 | $class 43 | 44 | CF$UID 45 | 45 46 | 47 | NS.keys 48 | 49 | 50 | CF$UID 51 | 5 52 | 53 | 54 | CF$UID 55 | 6 56 | 57 | 58 | CF$UID 59 | 7 60 | 61 | 62 | CF$UID 63 | 8 64 | 65 | 66 | CF$UID 67 | 9 68 | 69 | 70 | CF$UID 71 | 10 72 | 73 | 74 | CF$UID 75 | 11 76 | 77 | 78 | CF$UID 79 | 12 80 | 81 | 82 | CF$UID 83 | 13 84 | 85 | 86 | CF$UID 87 | 14 88 | 89 | 90 | NS.objects 91 | 92 | 93 | CF$UID 94 | 15 95 | 96 | 97 | CF$UID 98 | 16 99 | 100 | 101 | CF$UID 102 | 107 103 | 104 | 105 | CF$UID 106 | 108 107 | 108 | 109 | CF$UID 110 | 111 111 | 112 | 113 | CF$UID 114 | 116 115 | 116 | 117 | CF$UID 118 | 147 119 | 120 | 121 | CF$UID 122 | 148 123 | 124 | 125 | CF$UID 126 | 43 127 | 128 | 129 | CF$UID 130 | 43 131 | 132 | 133 | 134 | BreakpointsActivated 135 | DefaultEditorStatesForURLs 136 | DebuggingWindowBehavior 137 | ActiveScheme 138 | ActiveRunDestination 139 | LastCompletedPersistentSchemeBasedActivityReport 140 | DocumentWindows 141 | RecentEditorDocumentURLs 142 | AppFocusInMiniDebugging 143 | MiniDebuggingConsole 144 | 145 | 146 | $class 147 | 148 | CF$UID 149 | 45 150 | 151 | NS.keys 152 | 153 | 154 | CF$UID 155 | 17 156 | 157 | 158 | CF$UID 159 | 18 160 | 161 | 162 | NS.objects 163 | 164 | 165 | CF$UID 166 | 19 167 | 168 | 169 | CF$UID 170 | 73 171 | 172 | 173 | 174 | Xcode.IDEKit.EditorDocument.SourceCode 175 | Xcode.Xcode3ProjectSupport.EditorDocument.Xcode3Project 176 | 177 | $class 178 | 179 | CF$UID 180 | 45 181 | 182 | NS.keys 183 | 184 | 185 | CF$UID 186 | 20 187 | 188 | 189 | CF$UID 190 | 24 191 | 192 | 193 | CF$UID 194 | 26 195 | 196 | 197 | CF$UID 198 | 28 199 | 200 | 201 | CF$UID 202 | 30 203 | 204 | 205 | CF$UID 206 | 32 207 | 208 | 209 | CF$UID 210 | 34 211 | 212 | 213 | NS.objects 214 | 215 | 216 | CF$UID 217 | 36 218 | 219 | 220 | CF$UID 221 | 46 222 | 223 | 224 | CF$UID 225 | 50 226 | 227 | 228 | CF$UID 229 | 54 230 | 231 | 232 | CF$UID 233 | 62 234 | 235 | 236 | CF$UID 237 | 66 238 | 239 | 240 | CF$UID 241 | 69 242 | 243 | 244 | 245 | 246 | $class 247 | 248 | CF$UID 249 | 23 250 | 251 | NS.base 252 | 253 | CF$UID 254 | 0 255 | 256 | NS.relative 257 | 258 | CF$UID 259 | 21 260 | 261 | 262 | 263 | $class 264 | 265 | CF$UID 266 | 22 267 | 268 | NS.string 269 | file://localhost/Users/nick.lockwood/Dropbox/Open%20Source/cocoa/WebContentView/trunk/WebContentViewExample/content.html 270 | 271 | 272 | $classes 273 | 274 | NSMutableString 275 | NSString 276 | NSObject 277 | 278 | $classname 279 | NSMutableString 280 | 281 | 282 | $classes 283 | 284 | NSURL 285 | NSObject 286 | 287 | $classname 288 | NSURL 289 | 290 | 291 | $class 292 | 293 | CF$UID 294 | 23 295 | 296 | NS.base 297 | 298 | CF$UID 299 | 0 300 | 301 | NS.relative 302 | 303 | CF$UID 304 | 25 305 | 306 | 307 | 308 | $class 309 | 310 | CF$UID 311 | 22 312 | 313 | NS.string 314 | file://localhost/Users/nick.lockwood/Dropbox/Open%20Source/cocoa/WebContentView/trunk/WebContentViewExample/styles.css 315 | 316 | 317 | $class 318 | 319 | CF$UID 320 | 23 321 | 322 | NS.base 323 | 324 | CF$UID 325 | 0 326 | 327 | NS.relative 328 | 329 | CF$UID 330 | 27 331 | 332 | 333 | 334 | $class 335 | 336 | CF$UID 337 | 22 338 | 339 | NS.string 340 | file://localhost/Users/nick.lockwood/Dropbox/Open%20Source/cocoa/WebContentView/trunk/WebContentView/WebContentView.h 341 | 342 | 343 | $class 344 | 345 | CF$UID 346 | 23 347 | 348 | NS.base 349 | 350 | CF$UID 351 | 0 352 | 353 | NS.relative 354 | 355 | CF$UID 356 | 29 357 | 358 | 359 | 360 | $class 361 | 362 | CF$UID 363 | 22 364 | 365 | NS.string 366 | file://localhost/Users/nick.lockwood/Dropbox/Open%20Source%20(GIT)/WebContentView/WebContentView/WebContentView.h 367 | 368 | 369 | $class 370 | 371 | CF$UID 372 | 23 373 | 374 | NS.base 375 | 376 | CF$UID 377 | 0 378 | 379 | NS.relative 380 | 381 | CF$UID 382 | 31 383 | 384 | 385 | 386 | $class 387 | 388 | CF$UID 389 | 22 390 | 391 | NS.string 392 | file://localhost/Users/nick.lockwood/Dropbox/Open%20Source/cocoa/WebContentView/trunk/WebContentView/WebContentView.m 393 | 394 | 395 | $class 396 | 397 | CF$UID 398 | 23 399 | 400 | NS.base 401 | 402 | CF$UID 403 | 0 404 | 405 | NS.relative 406 | 407 | CF$UID 408 | 33 409 | 410 | 411 | 412 | $class 413 | 414 | CF$UID 415 | 22 416 | 417 | NS.string 418 | file://localhost/Users/nick.lockwood/Dropbox/Open%20Source/cocoa/WebContentView/trunk/WebContentViewExample/WebContentViewExampleAppDelegate.h 419 | 420 | 421 | $class 422 | 423 | CF$UID 424 | 23 425 | 426 | NS.base 427 | 428 | CF$UID 429 | 0 430 | 431 | NS.relative 432 | 433 | CF$UID 434 | 35 435 | 436 | 437 | 438 | $class 439 | 440 | CF$UID 441 | 22 442 | 443 | NS.string 444 | file://localhost/Users/nick.lockwood/Dropbox/Open%20Source%20(GIT)/WebContentView/WebContentView/WebContentView.m 445 | 446 | 447 | $class 448 | 449 | CF$UID 450 | 45 451 | 452 | NS.keys 453 | 454 | 455 | CF$UID 456 | 37 457 | 458 | 459 | CF$UID 460 | 38 461 | 462 | 463 | CF$UID 464 | 39 465 | 466 | 467 | CF$UID 468 | 40 469 | 470 | 471 | NS.objects 472 | 473 | 474 | CF$UID 475 | 41 476 | 477 | 478 | CF$UID 479 | 42 480 | 481 | 482 | CF$UID 483 | 43 484 | 485 | 486 | CF$UID 487 | 44 488 | 489 | 490 | 491 | PrimaryDocumentTimestamp 492 | PrimaryDocumentVisibleCharacterRange 493 | HideAllIssues 494 | PrimaryDocumentSelectedCharacterRange 495 | 333897180.40551001 496 | {0, 1692} 497 | 498 | {1692, 0} 499 | 500 | $classes 501 | 502 | NSMutableDictionary 503 | NSDictionary 504 | NSObject 505 | 506 | $classname 507 | NSMutableDictionary 508 | 509 | 510 | $class 511 | 512 | CF$UID 513 | 45 514 | 515 | NS.keys 516 | 517 | 518 | CF$UID 519 | 37 520 | 521 | 522 | CF$UID 523 | 38 524 | 525 | 526 | CF$UID 527 | 39 528 | 529 | 530 | CF$UID 531 | 40 532 | 533 | 534 | NS.objects 535 | 536 | 537 | CF$UID 538 | 47 539 | 540 | 541 | CF$UID 542 | 48 543 | 544 | 545 | CF$UID 546 | 43 547 | 548 | 549 | CF$UID 550 | 49 551 | 552 | 553 | 554 | 333897094.34134299 555 | {0, 179} 556 | {0, 0} 557 | 558 | $class 559 | 560 | CF$UID 561 | 45 562 | 563 | NS.keys 564 | 565 | 566 | CF$UID 567 | 37 568 | 569 | 570 | CF$UID 571 | 38 572 | 573 | 574 | CF$UID 575 | 39 576 | 577 | 578 | CF$UID 579 | 40 580 | 581 | 582 | NS.objects 583 | 584 | 585 | CF$UID 586 | 51 587 | 588 | 589 | CF$UID 590 | 52 591 | 592 | 593 | CF$UID 594 | 43 595 | 596 | 597 | CF$UID 598 | 53 599 | 600 | 601 | 602 | 333905008.355573 603 | {0, 949} 604 | {451, 0} 605 | 606 | $class 607 | 608 | CF$UID 609 | 45 610 | 611 | NS.keys 612 | 613 | 614 | CF$UID 615 | 55 616 | 617 | 618 | CF$UID 619 | 56 620 | 621 | 622 | CF$UID 623 | 57 624 | 625 | 626 | CF$UID 627 | 58 628 | 629 | 630 | NS.objects 631 | 632 | 633 | CF$UID 634 | 59 635 | 636 | 637 | CF$UID 638 | 60 639 | 640 | 641 | CF$UID 642 | 43 643 | 644 | 645 | CF$UID 646 | 61 647 | 648 | 649 | 650 | PrimaryDocumentTimestamp 651 | PrimaryDocumentVisibleCharacterRange 652 | HideAllIssues 653 | PrimaryDocumentSelectedCharacterRange 654 | 337350831.99172997 655 | {230, 2047} 656 | {44, 0} 657 | 658 | $class 659 | 660 | CF$UID 661 | 45 662 | 663 | NS.keys 664 | 665 | 666 | CF$UID 667 | 37 668 | 669 | 670 | CF$UID 671 | 38 672 | 673 | 674 | CF$UID 675 | 39 676 | 677 | 678 | CF$UID 679 | 40 680 | 681 | 682 | NS.objects 683 | 684 | 685 | CF$UID 686 | 63 687 | 688 | 689 | CF$UID 690 | 64 691 | 692 | 693 | CF$UID 694 | 43 695 | 696 | 697 | CF$UID 698 | 65 699 | 700 | 701 | 702 | 333905246.89715099 703 | {829, 1519} 704 | {2092, 0} 705 | 706 | $class 707 | 708 | CF$UID 709 | 45 710 | 711 | NS.keys 712 | 713 | 714 | CF$UID 715 | 37 716 | 717 | 718 | CF$UID 719 | 38 720 | 721 | 722 | CF$UID 723 | 39 724 | 725 | 726 | CF$UID 727 | 40 728 | 729 | 730 | NS.objects 731 | 732 | 733 | CF$UID 734 | 67 735 | 736 | 737 | CF$UID 738 | 68 739 | 740 | 741 | CF$UID 742 | 43 743 | 744 | 745 | CF$UID 746 | 49 747 | 748 | 749 | 750 | 333897983.05324602 751 | {0, 484} 752 | 753 | $class 754 | 755 | CF$UID 756 | 45 757 | 758 | NS.keys 759 | 760 | 761 | CF$UID 762 | 55 763 | 764 | 765 | CF$UID 766 | 56 767 | 768 | 769 | CF$UID 770 | 57 771 | 772 | 773 | CF$UID 774 | 58 775 | 776 | 777 | NS.objects 778 | 779 | 780 | CF$UID 781 | 70 782 | 783 | 784 | CF$UID 785 | 71 786 | 787 | 788 | CF$UID 789 | 43 790 | 791 | 792 | CF$UID 793 | 72 794 | 795 | 796 | 797 | 337352190.219953 798 | {8278, 1627} 799 | {11577, 0} 800 | 801 | $class 802 | 803 | CF$UID 804 | 45 805 | 806 | NS.keys 807 | 808 | 809 | CF$UID 810 | 74 811 | 812 | 813 | NS.objects 814 | 815 | 816 | CF$UID 817 | 76 818 | 819 | 820 | 821 | 822 | $class 823 | 824 | CF$UID 825 | 23 826 | 827 | NS.base 828 | 829 | CF$UID 830 | 0 831 | 832 | NS.relative 833 | 834 | CF$UID 835 | 75 836 | 837 | 838 | 839 | $class 840 | 841 | CF$UID 842 | 22 843 | 844 | NS.string 845 | file://localhost/Users/nick.lockwood/Dropbox/Open%20Source/cocoa/WebContentView/trunk/WebContentViewExample.xcodeproj 846 | 847 | 848 | $class 849 | 850 | CF$UID 851 | 45 852 | 853 | NS.keys 854 | 855 | 856 | CF$UID 857 | 77 858 | 859 | 860 | CF$UID 861 | 78 862 | 863 | 864 | CF$UID 865 | 79 866 | 867 | 868 | CF$UID 869 | 80 870 | 871 | 872 | CF$UID 873 | 81 874 | 875 | 876 | NS.objects 877 | 878 | 879 | CF$UID 880 | 82 881 | 882 | 883 | CF$UID 884 | 83 885 | 886 | 887 | CF$UID 888 | 95 889 | 890 | 891 | CF$UID 892 | 96 893 | 894 | 895 | CF$UID 896 | 106 897 | 898 | 899 | 900 | Xcode3ProjectEditorPreviousProjectEditorClass 901 | Xcode3ProjectEditor.sourceList.splitview 902 | Xcode3ProjectEditorPreviousTargetEditorClass 903 | Xcode3ProjectEditorSelectedDocumentLocations 904 | Xcode3ProjectEditor_Xcode3TargetEditor 905 | Xcode3ProjectInfoEditor 906 | 907 | $class 908 | 909 | CF$UID 910 | 45 911 | 912 | NS.keys 913 | 914 | 915 | CF$UID 916 | 84 917 | 918 | 919 | NS.objects 920 | 921 | 922 | CF$UID 923 | 85 924 | 925 | 926 | 927 | DVTSplitViewItems 928 | 929 | $class 930 | 931 | CF$UID 932 | 94 933 | 934 | NS.objects 935 | 936 | 937 | CF$UID 938 | 86 939 | 940 | 941 | CF$UID 942 | 92 943 | 944 | 945 | 946 | 947 | $class 948 | 949 | CF$UID 950 | 91 951 | 952 | NS.keys 953 | 954 | 955 | CF$UID 956 | 87 957 | 958 | 959 | CF$UID 960 | 88 961 | 962 | 963 | NS.objects 964 | 965 | 966 | CF$UID 967 | 89 968 | 969 | 970 | CF$UID 971 | 90 972 | 973 | 974 | 975 | DVTIdentifier 976 | DVTViewMagnitude 977 | 978 | 162 979 | 980 | $classes 981 | 982 | NSDictionary 983 | NSObject 984 | 985 | $classname 986 | NSDictionary 987 | 988 | 989 | $class 990 | 991 | CF$UID 992 | 91 993 | 994 | NS.keys 995 | 996 | 997 | CF$UID 998 | 87 999 | 1000 | 1001 | CF$UID 1002 | 88 1003 | 1004 | 1005 | NS.objects 1006 | 1007 | 1008 | CF$UID 1009 | 89 1010 | 1011 | 1012 | CF$UID 1013 | 93 1014 | 1015 | 1016 | 1017 | 978 1018 | 1019 | $classes 1020 | 1021 | NSMutableArray 1022 | NSArray 1023 | NSObject 1024 | 1025 | $classname 1026 | NSMutableArray 1027 | 1028 | Xcode3TargetEditor 1029 | 1030 | $class 1031 | 1032 | CF$UID 1033 | 105 1034 | 1035 | NS.objects 1036 | 1037 | 1038 | CF$UID 1039 | 97 1040 | 1041 | 1042 | 1043 | 1044 | $class 1045 | 1046 | CF$UID 1047 | 104 1048 | 1049 | documentURL 1050 | 1051 | CF$UID 1052 | 98 1053 | 1054 | selection 1055 | 1056 | CF$UID 1057 | 100 1058 | 1059 | timestamp 1060 | 1061 | CF$UID 1062 | 99 1063 | 1064 | 1065 | file://localhost/Users/nick.lockwood/Dropbox/Open%20Source/cocoa/WebContentView/trunk/WebContentViewExample.xcodeproj/ 1066 | 333896821.74444598 1067 | 1068 | $class 1069 | 1070 | CF$UID 1071 | 45 1072 | 1073 | NS.keys 1074 | 1075 | 1076 | CF$UID 1077 | 101 1078 | 1079 | 1080 | CF$UID 1081 | 102 1082 | 1083 | 1084 | NS.objects 1085 | 1086 | 1087 | CF$UID 1088 | 95 1089 | 1090 | 1091 | CF$UID 1092 | 103 1093 | 1094 | 1095 | 1096 | Editor 1097 | Target 1098 | WebContentViewExample 1099 | 1100 | $classes 1101 | 1102 | Xcode3ProjectDocumentLocation 1103 | DVTDocumentLocation 1104 | NSObject 1105 | 1106 | $classname 1107 | Xcode3ProjectDocumentLocation 1108 | 1109 | 1110 | $classes 1111 | 1112 | NSArray 1113 | NSObject 1114 | 1115 | $classname 1116 | NSArray 1117 | 1118 | 1119 | $class 1120 | 1121 | CF$UID 1122 | 45 1123 | 1124 | NS.keys 1125 | 1126 | NS.objects 1127 | 1128 | 1129 | 0 1130 | 1131 | $class 1132 | 1133 | CF$UID 1134 | 45 1135 | 1136 | NS.keys 1137 | 1138 | 1139 | CF$UID 1140 | 109 1141 | 1142 | 1143 | NS.objects 1144 | 1145 | 1146 | CF$UID 1147 | 110 1148 | 1149 | 1150 | 1151 | IDENameString 1152 | WebContentViewExample 1153 | 1154 | $class 1155 | 1156 | CF$UID 1157 | 45 1158 | 1159 | NS.keys 1160 | 1161 | 1162 | CF$UID 1163 | 112 1164 | 1165 | 1166 | CF$UID 1167 | 113 1168 | 1169 | 1170 | NS.objects 1171 | 1172 | 1173 | CF$UID 1174 | 114 1175 | 1176 | 1177 | CF$UID 1178 | 115 1179 | 1180 | 1181 | 1182 | IDEDeviceLocation 1183 | IDEDeviceArchitecture 1184 | dvtdevice-iphonesimulator:/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk-iPhone 1185 | i386 1186 | 1187 | $class 1188 | 1189 | CF$UID 1190 | 45 1191 | 1192 | NS.keys 1193 | 1194 | 1195 | CF$UID 1196 | 117 1197 | 1198 | 1199 | CF$UID 1200 | 118 1201 | 1202 | 1203 | CF$UID 1204 | 119 1205 | 1206 | 1207 | NS.objects 1208 | 1209 | 1210 | CF$UID 1211 | 120 1212 | 1213 | 1214 | CF$UID 1215 | 146 1216 | 1217 | 1218 | CF$UID 1219 | 127 1220 | 1221 | 1222 | 1223 | IDEActivityReportCompletionSummaryStringSegments 1224 | IDEActivityReportOptions 1225 | IDEActivityReportTitle 1226 | 1227 | $class 1228 | 1229 | CF$UID 1230 | 94 1231 | 1232 | NS.objects 1233 | 1234 | 1235 | CF$UID 1236 | 121 1237 | 1238 | 1239 | CF$UID 1240 | 128 1241 | 1242 | 1243 | CF$UID 1244 | 131 1245 | 1246 | 1247 | CF$UID 1248 | 136 1249 | 1250 | 1251 | 1252 | 1253 | $class 1254 | 1255 | CF$UID 1256 | 45 1257 | 1258 | NS.keys 1259 | 1260 | 1261 | CF$UID 1262 | 122 1263 | 1264 | 1265 | CF$UID 1266 | 123 1267 | 1268 | 1269 | CF$UID 1270 | 124 1271 | 1272 | 1273 | NS.objects 1274 | 1275 | 1276 | CF$UID 1277 | 125 1278 | 1279 | 1280 | CF$UID 1281 | 126 1282 | 1283 | 1284 | CF$UID 1285 | 127 1286 | 1287 | 1288 | 1289 | IDEActivityReportStringSegmentPriority 1290 | IDEActivityReportStringSegmentBackSeparator 1291 | IDEActivityReportStringSegmentStringValue 1292 | 2 1293 | 1294 | Build 1295 | 1296 | $class 1297 | 1298 | CF$UID 1299 | 45 1300 | 1301 | NS.keys 1302 | 1303 | 1304 | CF$UID 1305 | 122 1306 | 1307 | 1308 | CF$UID 1309 | 123 1310 | 1311 | 1312 | CF$UID 1313 | 124 1314 | 1315 | 1316 | NS.objects 1317 | 1318 | 1319 | CF$UID 1320 | 129 1321 | 1322 | 1323 | CF$UID 1324 | 130 1325 | 1326 | 1327 | CF$UID 1328 | 103 1329 | 1330 | 1331 | 1332 | 4 1333 | : 1334 | 1335 | $class 1336 | 1337 | CF$UID 1338 | 45 1339 | 1340 | NS.keys 1341 | 1342 | 1343 | CF$UID 1344 | 122 1345 | 1346 | 1347 | CF$UID 1348 | 123 1349 | 1350 | 1351 | CF$UID 1352 | 124 1353 | 1354 | 1355 | NS.objects 1356 | 1357 | 1358 | CF$UID 1359 | 132 1360 | 1361 | 1362 | CF$UID 1363 | 133 1364 | 1365 | 1366 | CF$UID 1367 | 134 1368 | 1369 | 1370 | 1371 | 1 1372 | 1373 | 1374 | $class 1375 | 1376 | CF$UID 1377 | 135 1378 | 1379 | NS.data 1380 | 1381 | YnBsaXN0MDDUAQIDBAUGOzxYJHZlcnNpb25YJG9iamVjdHNZJGFy 1382 | Y2hpdmVyVCR0b3ASAAGGoK0HCA8QGhscJCUrMTQ3VSRudWxs0wkK 1383 | CwwNDlxOU0F0dHJpYnV0ZXNWJGNsYXNzWE5TU3RyaW5ngAOADIAC 1384 | WVN1Y2NlZWRlZNMKERITFBdXTlMua2V5c1pOUy5vYmplY3RzgAui 1385 | FRaABIAFohgZgAaACVZOU0ZvbnRXTlNDb2xvctQKHR4fICEiI1ZO 1386 | U05hbWVWTlNTaXplWE5TZkZsYWdzgAiAByNAJgAAAAAAABENEF8Q 1387 | EUx1Y2lkYUdyYW5kZS1Cb2xk0iYnKClaJGNsYXNzbmFtZVgkY2xh 1388 | c3Nlc1ZOU0ZvbnSiKCpYTlNPYmplY3TTCiwtLi8wXE5TQ29sb3JT 1389 | cGFjZVdOU1doaXRlgAoQA0IwANImJzIzV05TQ29sb3KiMirSJic1 1390 | NlxOU0RpY3Rpb25hcnmiNSrSJic4OV8QEk5TQXR0cmlidXRlZFN0 1391 | cmluZ6I6Kl8QEk5TQXR0cmlidXRlZFN0cmluZ18QD05TS2V5ZWRB 1392 | cmNoaXZlctE9PlRyb290gAEACAARABoAIwAtADIANwBFAEsAUgBf 1393 | AGYAbwBxAHMAdQB/AIYAjgCZAJsAngCgAKIApQCnAKkAsAC4AMEA 1394 | yADPANgA2gDcAOUA6AD8AQEBDAEVARwBHwEoAS8BPAFEAUYBSAFL 1395 | AVABWAFbAWABbQFwAXUBigGNAaIBtAG3AbwAAAAAAAACAQAAAAAA 1396 | AAA/AAAAAAAAAAAAAAAAAAABvg== 1397 | 1398 | 1399 | 1400 | $classes 1401 | 1402 | NSMutableData 1403 | NSData 1404 | NSObject 1405 | 1406 | $classname 1407 | NSMutableData 1408 | 1409 | 1410 | $class 1411 | 1412 | CF$UID 1413 | 45 1414 | 1415 | NS.keys 1416 | 1417 | 1418 | CF$UID 1419 | 122 1420 | 1421 | 1422 | CF$UID 1423 | 137 1424 | 1425 | 1426 | CF$UID 1427 | 138 1428 | 1429 | 1430 | CF$UID 1431 | 124 1432 | 1433 | 1434 | CF$UID 1435 | 139 1436 | 1437 | 1438 | CF$UID 1439 | 140 1440 | 1441 | 1442 | NS.objects 1443 | 1444 | 1445 | CF$UID 1446 | 141 1447 | 1448 | 1449 | CF$UID 1450 | 142 1451 | 1452 | 1453 | CF$UID 1454 | 143 1455 | 1456 | 1457 | CF$UID 1458 | 145 1459 | 1460 | 1461 | CF$UID 1462 | 142 1463 | 1464 | 1465 | CF$UID 1466 | 142 1467 | 1468 | 1469 | 1470 | IDEActivityReportStringSegmentType 1471 | IDEActivityReportStringSegmentDate 1472 | IDEActivityReportStringSegmentDateStyle 1473 | IDEActivityReportStringSegmentTimeStyle 1474 | 3 1475 | 1 1476 | 1477 | $class 1478 | 1479 | CF$UID 1480 | 144 1481 | 1482 | NS.time 1483 | 333897099.94254798 1484 | 1485 | 1486 | $classes 1487 | 1488 | NSDate 1489 | NSObject 1490 | 1491 | $classname 1492 | NSDate 1493 | 1494 | 01/08/2011 at 14:11 1495 | 106 1496 | 1497 | $class 1498 | 1499 | CF$UID 1500 | 94 1501 | 1502 | NS.objects 1503 | 1504 | 1505 | CF$UID 1506 | 3 1507 | 1508 | 1509 | 1510 | 1511 | $class 1512 | 1513 | CF$UID 1514 | 94 1515 | 1516 | NS.objects 1517 | 1518 | 1519 | CF$UID 1520 | 149 1521 | 1522 | 1523 | CF$UID 1524 | 151 1525 | 1526 | 1527 | 1528 | 1529 | $class 1530 | 1531 | CF$UID 1532 | 23 1533 | 1534 | NS.base 1535 | 1536 | CF$UID 1537 | 0 1538 | 1539 | NS.relative 1540 | 1541 | CF$UID 1542 | 150 1543 | 1544 | 1545 | file://localhost/Users/nick.lockwood/Dropbox/Open%20Source%20(GIT)/WebContentView/WebContentView/WebContentView.m 1546 | 1547 | $class 1548 | 1549 | CF$UID 1550 | 23 1551 | 1552 | NS.base 1553 | 1554 | CF$UID 1555 | 0 1556 | 1557 | NS.relative 1558 | 1559 | CF$UID 1560 | 152 1561 | 1562 | 1563 | file://localhost/Users/nick.lockwood/Dropbox/Open%20Source%20(GIT)/WebContentView/WebContentView/WebContentView.h 1564 | 1565 | $class 1566 | 1567 | CF$UID 1568 | 45 1569 | 1570 | NS.keys 1571 | 1572 | 1573 | CF$UID 1574 | 154 1575 | 1576 | 1577 | CF$UID 1578 | 155 1579 | 1580 | 1581 | CF$UID 1582 | 156 1583 | 1584 | 1585 | CF$UID 1586 | 157 1587 | 1588 | 1589 | CF$UID 1590 | 158 1591 | 1592 | 1593 | CF$UID 1594 | 159 1595 | 1596 | 1597 | CF$UID 1598 | 160 1599 | 1600 | 1601 | CF$UID 1602 | 161 1603 | 1604 | 1605 | NS.objects 1606 | 1607 | 1608 | CF$UID 1609 | 162 1610 | 1611 | 1612 | CF$UID 1613 | 333 1614 | 1615 | 1616 | CF$UID 1617 | 334 1618 | 1619 | 1620 | CF$UID 1621 | 43 1622 | 1623 | 1624 | CF$UID 1625 | 3 1626 | 1627 | 1628 | CF$UID 1629 | 154 1630 | 1631 | 1632 | CF$UID 1633 | 15 1634 | 1635 | 1636 | CF$UID 1637 | 43 1638 | 1639 | 1640 | 1641 | IDEWorkspaceTabController_B3E7B423-635C-49D5-939F-5CED95D5F60F 1642 | IDEWindowFrame 1643 | IDEOrderedWorkspaceTabControllers 1644 | IDEWindowInFullscreenMode 1645 | IDEWorkspaceWindowControllerUniqueIdentifier 1646 | IDEActiveWorkspaceTabController 1647 | IDEWindowToolbarIsVisible 1648 | IDEWindowTabBarIsVisible 1649 | 1650 | $class 1651 | 1652 | CF$UID 1653 | 45 1654 | 1655 | NS.keys 1656 | 1657 | 1658 | CF$UID 1659 | 163 1660 | 1661 | 1662 | CF$UID 1663 | 164 1664 | 1665 | 1666 | CF$UID 1667 | 165 1668 | 1669 | 1670 | CF$UID 1671 | 166 1672 | 1673 | 1674 | CF$UID 1675 | 167 1676 | 1677 | 1678 | CF$UID 1679 | 168 1680 | 1681 | 1682 | CF$UID 1683 | 169 1684 | 1685 | 1686 | CF$UID 1687 | 170 1688 | 1689 | 1690 | NS.objects 1691 | 1692 | 1693 | CF$UID 1694 | 171 1695 | 1696 | 1697 | CF$UID 1698 | 15 1699 | 1700 | 1701 | CF$UID 1702 | 272 1703 | 1704 | 1705 | CF$UID 1706 | 273 1707 | 1708 | 1709 | CF$UID 1710 | 280 1711 | 1712 | 1713 | CF$UID 1714 | 324 1715 | 1716 | 1717 | CF$UID 1718 | 43 1719 | 1720 | 1721 | CF$UID 1722 | 107 1723 | 1724 | 1725 | 1726 | IDEEditorArea 1727 | IDEShowNavigator 1728 | IDETabLabel 1729 | IDEWorkspaceTabControllerUtilityAreaSplitView 1730 | IDENavigatorArea 1731 | IDEWorkspaceTabControllerDesignAreaSplitView 1732 | IDEShowUtilities 1733 | AssistantEditorsLayout 1734 | 1735 | $class 1736 | 1737 | CF$UID 1738 | 45 1739 | 1740 | NS.keys 1741 | 1742 | 1743 | CF$UID 1744 | 172 1745 | 1746 | 1747 | CF$UID 1748 | 173 1749 | 1750 | 1751 | CF$UID 1752 | 174 1753 | 1754 | 1755 | CF$UID 1756 | 175 1757 | 1758 | 1759 | CF$UID 1760 | 176 1761 | 1762 | 1763 | CF$UID 1764 | 177 1765 | 1766 | 1767 | CF$UID 1768 | 178 1769 | 1770 | 1771 | CF$UID 1772 | 179 1773 | 1774 | 1775 | NS.objects 1776 | 1777 | 1778 | CF$UID 1779 | 180 1780 | 1781 | 1782 | CF$UID 1783 | 200 1784 | 1785 | 1786 | CF$UID 1787 | 233 1788 | 1789 | 1790 | CF$UID 1791 | 15 1792 | 1793 | 1794 | CF$UID 1795 | 107 1796 | 1797 | 1798 | CF$UID 1799 | 263 1800 | 1801 | 1802 | CF$UID 1803 | 271 1804 | 1805 | 1806 | CF$UID 1807 | 43 1808 | 1809 | 1810 | 1811 | layoutTree 1812 | IDEEditorMode_Standard 1813 | IDEEDitorArea_DebugArea 1814 | IDEShowEditor 1815 | EditorMode 1816 | DebuggerSplitView 1817 | DefaultPersistentRepresentations 1818 | ShowDebuggerArea 1819 | 1820 | $class 1821 | 1822 | CF$UID 1823 | 199 1824 | 1825 | geniusEditorContextNode 1826 | 1827 | CF$UID 1828 | 0 1829 | 1830 | primaryEditorContextNode 1831 | 1832 | CF$UID 1833 | 181 1834 | 1835 | rootLayoutTreeNode 1836 | 1837 | CF$UID 1838 | 196 1839 | 1840 | 1841 | 1842 | $class 1843 | 1844 | CF$UID 1845 | 198 1846 | 1847 | children 1848 | 1849 | CF$UID 1850 | 0 1851 | 1852 | contentType 1853 | 1 1854 | documentArchivableRepresentation 1855 | 1856 | CF$UID 1857 | 182 1858 | 1859 | orientation 1860 | 0 1861 | parent 1862 | 1863 | CF$UID 1864 | 196 1865 | 1866 | 1867 | 1868 | $class 1869 | 1870 | CF$UID 1871 | 195 1872 | 1873 | DocumentLocation 1874 | 1875 | CF$UID 1876 | 192 1877 | 1878 | DomainIdentifier 1879 | 1880 | CF$UID 1881 | 183 1882 | 1883 | IdentifierPath 1884 | 1885 | CF$UID 1886 | 184 1887 | 1888 | IndexOfDocumentIdentifier 1889 | 1890 | CF$UID 1891 | 107 1892 | 1893 | 1894 | Xcode.IDENavigableItemDomain.WorkspaceStructure 1895 | 1896 | $class 1897 | 1898 | CF$UID 1899 | 105 1900 | 1901 | NS.objects 1902 | 1903 | 1904 | CF$UID 1905 | 185 1906 | 1907 | 1908 | CF$UID 1909 | 188 1910 | 1911 | 1912 | CF$UID 1913 | 190 1914 | 1915 | 1916 | 1917 | 1918 | $class 1919 | 1920 | CF$UID 1921 | 187 1922 | 1923 | Identifier 1924 | 1925 | CF$UID 1926 | 186 1927 | 1928 | 1929 | WebContentView.m 1930 | 1931 | $classes 1932 | 1933 | IDEArchivableStringIndexPair 1934 | NSObject 1935 | 1936 | $classname 1937 | IDEArchivableStringIndexPair 1938 | 1939 | 1940 | $class 1941 | 1942 | CF$UID 1943 | 187 1944 | 1945 | Identifier 1946 | 1947 | CF$UID 1948 | 189 1949 | 1950 | 1951 | WebContentView 1952 | 1953 | $class 1954 | 1955 | CF$UID 1956 | 187 1957 | 1958 | Identifier 1959 | 1960 | CF$UID 1961 | 191 1962 | 1963 | 1964 | WebContentViewExample 1965 | 1966 | $class 1967 | 1968 | CF$UID 1969 | 194 1970 | 1971 | documentURL 1972 | 1973 | CF$UID 1974 | 193 1975 | 1976 | timestamp 1977 | 1978 | CF$UID 1979 | 0 1980 | 1981 | 1982 | 1983 | $class 1984 | 1985 | CF$UID 1986 | 22 1987 | 1988 | NS.string 1989 | file://localhost/Users/nick.lockwood/Dropbox/Open%20Source%20(GIT)/WebContentView/WebContentView/WebContentView.m 1990 | 1991 | 1992 | $classes 1993 | 1994 | DVTDocumentLocation 1995 | NSObject 1996 | 1997 | $classname 1998 | DVTDocumentLocation 1999 | 2000 | 2001 | $classes 2002 | 2003 | IDENavigableItemArchivableRepresentation 2004 | NSObject 2005 | 2006 | $classname 2007 | IDENavigableItemArchivableRepresentation 2008 | 2009 | 2010 | $class 2011 | 2012 | CF$UID 2013 | 198 2014 | 2015 | children 2016 | 2017 | CF$UID 2018 | 197 2019 | 2020 | contentType 2021 | 0 2022 | documentArchivableRepresentation 2023 | 2024 | CF$UID 2025 | 0 2026 | 2027 | orientation 2028 | 0 2029 | parent 2030 | 2031 | CF$UID 2032 | 0 2033 | 2034 | 2035 | 2036 | $class 2037 | 2038 | CF$UID 2039 | 105 2040 | 2041 | NS.objects 2042 | 2043 | 2044 | CF$UID 2045 | 181 2046 | 2047 | 2048 | 2049 | 2050 | $classes 2051 | 2052 | IDEWorkspaceTabControllerLayoutTreeNode 2053 | NSObject 2054 | 2055 | $classname 2056 | IDEWorkspaceTabControllerLayoutTreeNode 2057 | 2058 | 2059 | $classes 2060 | 2061 | IDEWorkspaceTabControllerLayoutTree 2062 | NSObject 2063 | 2064 | $classname 2065 | IDEWorkspaceTabControllerLayoutTree 2066 | 2067 | 2068 | $class 2069 | 2070 | CF$UID 2071 | 45 2072 | 2073 | NS.keys 2074 | 2075 | 2076 | CF$UID 2077 | 201 2078 | 2079 | 2080 | NS.objects 2081 | 2082 | 2083 | CF$UID 2084 | 202 2085 | 2086 | 2087 | 2088 | EditorLayout_PersistentRepresentation 2089 | 2090 | $class 2091 | 2092 | CF$UID 2093 | 45 2094 | 2095 | NS.keys 2096 | 2097 | 2098 | CF$UID 2099 | 203 2100 | 2101 | 2102 | NS.objects 2103 | 2104 | 2105 | CF$UID 2106 | 204 2107 | 2108 | 2109 | 2110 | Main 2111 | 2112 | $class 2113 | 2114 | CF$UID 2115 | 91 2116 | 2117 | NS.keys 2118 | 2119 | 2120 | CF$UID 2121 | 205 2122 | 2123 | 2124 | CF$UID 2125 | 206 2126 | 2127 | 2128 | CF$UID 2129 | 207 2130 | 2131 | 2132 | NS.objects 2133 | 2134 | 2135 | CF$UID 2136 | 208 2137 | 2138 | 2139 | CF$UID 2140 | 107 2141 | 2142 | 2143 | CF$UID 2144 | 231 2145 | 2146 | 2147 | 2148 | EditorLayout_StateSavingStateDictionaries 2149 | EditorLayout_Selected 2150 | EditorLayout_Geometry 2151 | 2152 | $class 2153 | 2154 | CF$UID 2155 | 105 2156 | 2157 | NS.objects 2158 | 2159 | 2160 | CF$UID 2161 | 209 2162 | 2163 | 2164 | 2165 | 2166 | $class 2167 | 2168 | CF$UID 2169 | 45 2170 | 2171 | NS.keys 2172 | 2173 | 2174 | CF$UID 2175 | 210 2176 | 2177 | 2178 | CF$UID 2179 | 211 2180 | 2181 | 2182 | CF$UID 2183 | 212 2184 | 2185 | 2186 | CF$UID 2187 | 213 2188 | 2189 | 2190 | CF$UID 2191 | 214 2192 | 2193 | 2194 | CF$UID 2195 | 215 2196 | 2197 | 2198 | CF$UID 2199 | 216 2200 | 2201 | 2202 | NS.objects 2203 | 2204 | 2205 | CF$UID 2206 | 217 2207 | 2208 | 2209 | CF$UID 2210 | 218 2211 | 2212 | 2213 | CF$UID 2214 | 224 2215 | 2216 | 2217 | CF$UID 2218 | 186 2219 | 2220 | 2221 | CF$UID 2222 | 186 2223 | 2224 | 2225 | CF$UID 2226 | 228 2227 | 2228 | 2229 | CF$UID 2230 | 229 2231 | 2232 | 2233 | 2234 | FileDataType 2235 | ArchivableRepresentation 2236 | EditorState 2237 | NavigableItemName 2238 | DocumentNavigableItemName 2239 | DocumentExtensionIdentifier 2240 | DocumentURL 2241 | public.objective-c-source 2242 | 2243 | $class 2244 | 2245 | CF$UID 2246 | 195 2247 | 2248 | DocumentLocation 2249 | 2250 | CF$UID 2251 | 192 2252 | 2253 | DomainIdentifier 2254 | 2255 | CF$UID 2256 | 183 2257 | 2258 | IdentifierPath 2259 | 2260 | CF$UID 2261 | 219 2262 | 2263 | IndexOfDocumentIdentifier 2264 | 2265 | CF$UID 2266 | 107 2267 | 2268 | 2269 | 2270 | $class 2271 | 2272 | CF$UID 2273 | 105 2274 | 2275 | NS.objects 2276 | 2277 | 2278 | CF$UID 2279 | 220 2280 | 2281 | 2282 | CF$UID 2283 | 221 2284 | 2285 | 2286 | CF$UID 2287 | 222 2288 | 2289 | 2290 | 2291 | 2292 | $class 2293 | 2294 | CF$UID 2295 | 187 2296 | 2297 | Identifier 2298 | 2299 | CF$UID 2300 | 186 2301 | 2302 | 2303 | 2304 | $class 2305 | 2306 | CF$UID 2307 | 187 2308 | 2309 | Identifier 2310 | 2311 | CF$UID 2312 | 189 2313 | 2314 | 2315 | 2316 | $class 2317 | 2318 | CF$UID 2319 | 187 2320 | 2321 | Identifier 2322 | 2323 | CF$UID 2324 | 223 2325 | 2326 | 2327 | WebContentViewExample 2328 | 2329 | $class 2330 | 2331 | CF$UID 2332 | 91 2333 | 2334 | NS.keys 2335 | 2336 | 2337 | CF$UID 2338 | 55 2339 | 2340 | 2341 | CF$UID 2342 | 56 2343 | 2344 | 2345 | CF$UID 2346 | 57 2347 | 2348 | 2349 | CF$UID 2350 | 58 2351 | 2352 | 2353 | NS.objects 2354 | 2355 | 2356 | CF$UID 2357 | 225 2358 | 2359 | 2360 | CF$UID 2361 | 226 2362 | 2363 | 2364 | CF$UID 2365 | 43 2366 | 2367 | 2368 | CF$UID 2369 | 227 2370 | 2371 | 2372 | 2373 | 337352190.222516 2374 | {8278, 1627} 2375 | {11577, 0} 2376 | Xcode.IDEKit.EditorDocument.SourceCode 2377 | 2378 | $class 2379 | 2380 | CF$UID 2381 | 23 2382 | 2383 | NS.base 2384 | 2385 | CF$UID 2386 | 0 2387 | 2388 | NS.relative 2389 | 2390 | CF$UID 2391 | 230 2392 | 2393 | 2394 | file://localhost/Users/nick.lockwood/Dropbox/Open%20Source%20(GIT)/WebContentView/WebContentView/WebContentView.m 2395 | 2396 | $class 2397 | 2398 | CF$UID 2399 | 105 2400 | 2401 | NS.objects 2402 | 2403 | 2404 | CF$UID 2405 | 232 2406 | 2407 | 2408 | 2409 | {{0, 0}, {1140, 798}} 2410 | 2411 | $class 2412 | 2413 | CF$UID 2414 | 45 2415 | 2416 | NS.keys 2417 | 2418 | 2419 | CF$UID 2420 | 234 2421 | 2422 | 2423 | CF$UID 2424 | 235 2425 | 2426 | 2427 | CF$UID 2428 | 236 2429 | 2430 | 2431 | CF$UID 2432 | 237 2433 | 2434 | 2435 | CF$UID 2436 | 238 2437 | 2438 | 2439 | CF$UID 2440 | 239 2441 | 2442 | 2443 | NS.objects 2444 | 2445 | 2446 | CF$UID 2447 | 142 2448 | 2449 | 2450 | CF$UID 2451 | 240 2452 | 2453 | 2454 | CF$UID 2455 | 242 2456 | 2457 | 2458 | CF$UID 2459 | 142 2460 | 2461 | 2462 | CF$UID 2463 | 246 2464 | 2465 | 2466 | CF$UID 2467 | 257 2468 | 2469 | 2470 | 2471 | LayoutFocusMode 2472 | console 2473 | variables 2474 | LayoutMode 2475 | IDEDebugArea_SplitView 2476 | IDEDebuggerAreaSplitView 2477 | 2478 | $class 2479 | 2480 | CF$UID 2481 | 45 2482 | 2483 | NS.keys 2484 | 2485 | 2486 | CF$UID 2487 | 241 2488 | 2489 | 2490 | NS.objects 2491 | 2492 | 2493 | CF$UID 2494 | 107 2495 | 2496 | 2497 | 2498 | ConsoleFilterMode 2499 | 2500 | $class 2501 | 2502 | CF$UID 2503 | 45 2504 | 2505 | NS.keys 2506 | 2507 | 2508 | CF$UID 2509 | 243 2510 | 2511 | 2512 | CF$UID 2513 | 244 2514 | 2515 | 2516 | NS.objects 2517 | 2518 | 2519 | CF$UID 2520 | 142 2521 | 2522 | 2523 | CF$UID 2524 | 245 2525 | 2526 | 2527 | 2528 | VariablesViewSelectedScope 2529 | DBGVariablesViewFilterMode 2530 | 2 2531 | 2532 | $class 2533 | 2534 | CF$UID 2535 | 45 2536 | 2537 | NS.keys 2538 | 2539 | 2540 | CF$UID 2541 | 247 2542 | 2543 | 2544 | NS.objects 2545 | 2546 | 2547 | CF$UID 2548 | 248 2549 | 2550 | 2551 | 2552 | DVTSplitViewItems 2553 | 2554 | $class 2555 | 2556 | CF$UID 2557 | 94 2558 | 2559 | NS.objects 2560 | 2561 | 2562 | CF$UID 2563 | 249 2564 | 2565 | 2566 | CF$UID 2567 | 254 2568 | 2569 | 2570 | 2571 | 2572 | $class 2573 | 2574 | CF$UID 2575 | 91 2576 | 2577 | NS.keys 2578 | 2579 | 2580 | CF$UID 2581 | 250 2582 | 2583 | 2584 | CF$UID 2585 | 251 2586 | 2587 | 2588 | NS.objects 2589 | 2590 | 2591 | CF$UID 2592 | 252 2593 | 2594 | 2595 | CF$UID 2596 | 253 2597 | 2598 | 2599 | 2600 | DVTIdentifier 2601 | DVTViewMagnitude 2602 | VariablesView 2603 | 570 2604 | 2605 | $class 2606 | 2607 | CF$UID 2608 | 91 2609 | 2610 | NS.keys 2611 | 2612 | 2613 | CF$UID 2614 | 250 2615 | 2616 | 2617 | CF$UID 2618 | 251 2619 | 2620 | 2621 | NS.objects 2622 | 2623 | 2624 | CF$UID 2625 | 255 2626 | 2627 | 2628 | CF$UID 2629 | 256 2630 | 2631 | 2632 | 2633 | ConsoleArea 2634 | 569 2635 | 2636 | $class 2637 | 2638 | CF$UID 2639 | 45 2640 | 2641 | NS.keys 2642 | 2643 | 2644 | CF$UID 2645 | 247 2646 | 2647 | 2648 | NS.objects 2649 | 2650 | 2651 | CF$UID 2652 | 258 2653 | 2654 | 2655 | 2656 | 2657 | $class 2658 | 2659 | CF$UID 2660 | 94 2661 | 2662 | NS.objects 2663 | 2664 | 2665 | CF$UID 2666 | 259 2667 | 2668 | 2669 | CF$UID 2670 | 261 2671 | 2672 | 2673 | 2674 | 2675 | $class 2676 | 2677 | CF$UID 2678 | 91 2679 | 2680 | NS.keys 2681 | 2682 | 2683 | CF$UID 2684 | 250 2685 | 2686 | 2687 | CF$UID 2688 | 251 2689 | 2690 | 2691 | NS.objects 2692 | 2693 | 2694 | CF$UID 2695 | 252 2696 | 2697 | 2698 | CF$UID 2699 | 260 2700 | 2701 | 2702 | 2703 | 570 2704 | 2705 | $class 2706 | 2707 | CF$UID 2708 | 91 2709 | 2710 | NS.keys 2711 | 2712 | 2713 | CF$UID 2714 | 250 2715 | 2716 | 2717 | CF$UID 2718 | 251 2719 | 2720 | 2721 | NS.objects 2722 | 2723 | 2724 | CF$UID 2725 | 255 2726 | 2727 | 2728 | CF$UID 2729 | 262 2730 | 2731 | 2732 | 2733 | 569 2734 | 2735 | $class 2736 | 2737 | CF$UID 2738 | 45 2739 | 2740 | NS.keys 2741 | 2742 | 2743 | CF$UID 2744 | 247 2745 | 2746 | 2747 | NS.objects 2748 | 2749 | 2750 | CF$UID 2751 | 264 2752 | 2753 | 2754 | 2755 | 2756 | $class 2757 | 2758 | CF$UID 2759 | 94 2760 | 2761 | NS.objects 2762 | 2763 | 2764 | CF$UID 2765 | 265 2766 | 2767 | 2768 | CF$UID 2769 | 268 2770 | 2771 | 2772 | 2773 | 2774 | $class 2775 | 2776 | CF$UID 2777 | 91 2778 | 2779 | NS.keys 2780 | 2781 | 2782 | CF$UID 2783 | 250 2784 | 2785 | 2786 | CF$UID 2787 | 251 2788 | 2789 | 2790 | NS.objects 2791 | 2792 | 2793 | CF$UID 2794 | 266 2795 | 2796 | 2797 | CF$UID 2798 | 267 2799 | 2800 | 2801 | 2802 | IDEEditor 2803 | 354 2804 | 2805 | $class 2806 | 2807 | CF$UID 2808 | 91 2809 | 2810 | NS.keys 2811 | 2812 | 2813 | CF$UID 2814 | 250 2815 | 2816 | 2817 | CF$UID 2818 | 251 2819 | 2820 | 2821 | NS.objects 2822 | 2823 | 2824 | CF$UID 2825 | 269 2826 | 2827 | 2828 | CF$UID 2829 | 270 2830 | 2831 | 2832 | 2833 | IDEDebuggerArea 2834 | 444 2835 | 2836 | $class 2837 | 2838 | CF$UID 2839 | 45 2840 | 2841 | NS.keys 2842 | 2843 | NS.objects 2844 | 2845 | 2846 | WebContentView.m 2847 | 2848 | $class 2849 | 2850 | CF$UID 2851 | 45 2852 | 2853 | NS.keys 2854 | 2855 | 2856 | CF$UID 2857 | 247 2858 | 2859 | 2860 | NS.objects 2861 | 2862 | 2863 | CF$UID 2864 | 274 2865 | 2866 | 2867 | 2868 | 2869 | $class 2870 | 2871 | CF$UID 2872 | 94 2873 | 2874 | NS.objects 2875 | 2876 | 2877 | CF$UID 2878 | 275 2879 | 2880 | 2881 | CF$UID 2882 | 278 2883 | 2884 | 2885 | 2886 | 2887 | $class 2888 | 2889 | CF$UID 2890 | 91 2891 | 2892 | NS.keys 2893 | 2894 | 2895 | CF$UID 2896 | 250 2897 | 2898 | 2899 | CF$UID 2900 | 251 2901 | 2902 | 2903 | NS.objects 2904 | 2905 | 2906 | CF$UID 2907 | 276 2908 | 2909 | 2910 | CF$UID 2911 | 277 2912 | 2913 | 2914 | 2915 | 2916 | 574 2917 | 2918 | $class 2919 | 2920 | CF$UID 2921 | 91 2922 | 2923 | NS.keys 2924 | 2925 | 2926 | CF$UID 2927 | 250 2928 | 2929 | 2930 | CF$UID 2931 | 251 2932 | 2933 | 2934 | NS.objects 2935 | 2936 | 2937 | CF$UID 2938 | 276 2939 | 2940 | 2941 | CF$UID 2942 | 279 2943 | 2944 | 2945 | 2946 | 224 2947 | 2948 | $class 2949 | 2950 | CF$UID 2951 | 45 2952 | 2953 | NS.keys 2954 | 2955 | 2956 | CF$UID 2957 | 281 2958 | 2959 | 2960 | CF$UID 2961 | 282 2962 | 2963 | 2964 | CF$UID 2965 | 283 2966 | 2967 | 2968 | CF$UID 2969 | 284 2970 | 2971 | 2972 | NS.objects 2973 | 2974 | 2975 | CF$UID 2976 | 285 2977 | 2978 | 2979 | CF$UID 2980 | 302 2981 | 2982 | 2983 | CF$UID 2984 | 281 2985 | 2986 | 2987 | CF$UID 2988 | 306 2989 | 2990 | 2991 | 2992 | Xcode.IDEKit.Navigator.Structure 2993 | Xcode.DebuggerKit.ThreadsStacksNavigator 2994 | SelectedNavigator 2995 | Xcode.IDEKit.Navigator.Issues 2996 | 2997 | $class 2998 | 2999 | CF$UID 3000 | 45 3001 | 3002 | NS.keys 3003 | 3004 | 3005 | CF$UID 3006 | 286 3007 | 3008 | 3009 | CF$UID 3010 | 287 3011 | 3012 | 3013 | CF$UID 3014 | 288 3015 | 3016 | 3017 | CF$UID 3018 | 289 3019 | 3020 | 3021 | CF$UID 3022 | 290 3023 | 3024 | 3025 | CF$UID 3026 | 291 3027 | 3028 | 3029 | CF$UID 3030 | 292 3031 | 3032 | 3033 | NS.objects 3034 | 3035 | 3036 | CF$UID 3037 | 293 3038 | 3039 | 3040 | CF$UID 3041 | 43 3042 | 3043 | 3044 | CF$UID 3045 | 294 3046 | 3047 | 3048 | CF$UID 3049 | 43 3050 | 3051 | 3052 | CF$UID 3053 | 43 3054 | 3055 | 3056 | CF$UID 3057 | 296 3058 | 3059 | 3060 | CF$UID 3061 | 299 3062 | 3063 | 3064 | 3065 | IDEVisibleRect 3066 | IDEUnsavedDocumentFilteringEnabled 3067 | IDENavigatorExpandedItemsBeforeFilteringSet 3068 | IDERecentDocumentFilteringEnabled 3069 | IDESCMStatusFilteringEnabled 3070 | IDESelectedObjects 3071 | IDEExpandedItemsSet 3072 | {{0, 0}, {259, 754}} 3073 | 3074 | $class 3075 | 3076 | CF$UID 3077 | 295 3078 | 3079 | NS.objects 3080 | 3081 | 3082 | 3083 | $classes 3084 | 3085 | NSSet 3086 | NSObject 3087 | 3088 | $classname 3089 | NSSet 3090 | 3091 | 3092 | $class 3093 | 3094 | CF$UID 3095 | 105 3096 | 3097 | NS.objects 3098 | 3099 | 3100 | CF$UID 3101 | 297 3102 | 3103 | 3104 | 3105 | 3106 | $class 3107 | 3108 | CF$UID 3109 | 94 3110 | 3111 | NS.objects 3112 | 3113 | 3114 | CF$UID 3115 | 298 3116 | 3117 | 3118 | CF$UID 3119 | 189 3120 | 3121 | 3122 | CF$UID 3123 | 186 3124 | 3125 | 3126 | 3127 | WebContentViewExample 3128 | 3129 | $class 3130 | 3131 | CF$UID 3132 | 295 3133 | 3134 | NS.objects 3135 | 3136 | 3137 | CF$UID 3138 | 300 3139 | 3140 | 3141 | CF$UID 3142 | 301 3143 | 3144 | 3145 | 3146 | 3147 | $class 3148 | 3149 | CF$UID 3150 | 94 3151 | 3152 | NS.objects 3153 | 3154 | 3155 | CF$UID 3156 | 298 3157 | 3158 | 3159 | 3160 | 3161 | $class 3162 | 3163 | CF$UID 3164 | 94 3165 | 3166 | NS.objects 3167 | 3168 | 3169 | CF$UID 3170 | 298 3171 | 3172 | 3173 | CF$UID 3174 | 189 3175 | 3176 | 3177 | 3178 | 3179 | $class 3180 | 3181 | CF$UID 3182 | 45 3183 | 3184 | NS.keys 3185 | 3186 | 3187 | CF$UID 3188 | 303 3189 | 3190 | 3191 | CF$UID 3192 | 304 3193 | 3194 | 3195 | CF$UID 3196 | 305 3197 | 3198 | 3199 | NS.objects 3200 | 3201 | 3202 | CF$UID 3203 | 245 3204 | 3205 | 3206 | CF$UID 3207 | 107 3208 | 3209 | 3210 | CF$UID 3211 | 43 3212 | 3213 | 3214 | 3215 | IDEStackCompressionValue 3216 | IDEThreadsOrQueuesMode 3217 | IDEHideAncestorForNonInterestingFrames 3218 | 3219 | $class 3220 | 3221 | CF$UID 3222 | 45 3223 | 3224 | NS.keys 3225 | 3226 | 3227 | CF$UID 3228 | 307 3229 | 3230 | 3231 | CF$UID 3232 | 308 3233 | 3234 | 3235 | CF$UID 3236 | 309 3237 | 3238 | 3239 | CF$UID 3240 | 310 3241 | 3242 | 3243 | CF$UID 3244 | 311 3245 | 3246 | 3247 | CF$UID 3248 | 312 3249 | 3250 | 3251 | CF$UID 3252 | 313 3253 | 3254 | 3255 | CF$UID 3256 | 314 3257 | 3258 | 3259 | CF$UID 3260 | 315 3261 | 3262 | 3263 | CF$UID 3264 | 316 3265 | 3266 | 3267 | NS.objects 3268 | 3269 | 3270 | CF$UID 3271 | 43 3272 | 3273 | 3274 | CF$UID 3275 | 317 3276 | 3277 | 3278 | CF$UID 3279 | 318 3280 | 3281 | 3282 | CF$UID 3283 | 320 3284 | 3285 | 3286 | CF$UID 3287 | 321 3288 | 3289 | 3290 | CF$UID 3291 | 43 3292 | 3293 | 3294 | CF$UID 3295 | 43 3296 | 3297 | 3298 | CF$UID 3299 | 322 3300 | 3301 | 3302 | CF$UID 3303 | 43 3304 | 3305 | 3306 | CF$UID 3307 | 323 3308 | 3309 | 3310 | 3311 | IDEErrorFilteringEnabled 3312 | IDEVisibleRect 3313 | IDECollapsedFiles 3314 | IDEExpandedIssues 3315 | IDESelectedNavigables 3316 | IDEShowsByType 3317 | IDESchemeFilteringEnabled 3318 | IDECollapsedTypes 3319 | IDERecentFilteringEnabled 3320 | IDECollapsedGroups 3321 | {{0, 0}, {259, 732}} 3322 | 3323 | $class 3324 | 3325 | CF$UID 3326 | 319 3327 | 3328 | NS.objects 3329 | 3330 | 3331 | 3332 | $classes 3333 | 3334 | NSMutableSet 3335 | NSSet 3336 | NSObject 3337 | 3338 | $classname 3339 | NSMutableSet 3340 | 3341 | 3342 | $class 3343 | 3344 | CF$UID 3345 | 319 3346 | 3347 | NS.objects 3348 | 3349 | 3350 | 3351 | $class 3352 | 3353 | CF$UID 3354 | 94 3355 | 3356 | NS.objects 3357 | 3358 | 3359 | 3360 | $class 3361 | 3362 | CF$UID 3363 | 319 3364 | 3365 | NS.objects 3366 | 3367 | 3368 | 3369 | $class 3370 | 3371 | CF$UID 3372 | 319 3373 | 3374 | NS.objects 3375 | 3376 | 3377 | 3378 | $class 3379 | 3380 | CF$UID 3381 | 45 3382 | 3383 | NS.keys 3384 | 3385 | 3386 | CF$UID 3387 | 247 3388 | 3389 | 3390 | NS.objects 3391 | 3392 | 3393 | CF$UID 3394 | 325 3395 | 3396 | 3397 | 3398 | 3399 | $class 3400 | 3401 | CF$UID 3402 | 94 3403 | 3404 | NS.objects 3405 | 3406 | 3407 | CF$UID 3408 | 326 3409 | 3410 | 3411 | CF$UID 3412 | 328 3413 | 3414 | 3415 | CF$UID 3416 | 330 3417 | 3418 | 3419 | 3420 | 3421 | $class 3422 | 3423 | CF$UID 3424 | 91 3425 | 3426 | NS.keys 3427 | 3428 | 3429 | CF$UID 3430 | 250 3431 | 3432 | 3433 | CF$UID 3434 | 251 3435 | 3436 | 3437 | NS.objects 3438 | 3439 | 3440 | CF$UID 3441 | 167 3442 | 3443 | 3444 | CF$UID 3445 | 327 3446 | 3447 | 3448 | 3449 | 260 3450 | 3451 | $class 3452 | 3453 | CF$UID 3454 | 91 3455 | 3456 | NS.keys 3457 | 3458 | 3459 | CF$UID 3460 | 250 3461 | 3462 | 3463 | CF$UID 3464 | 251 3465 | 3466 | 3467 | NS.objects 3468 | 3469 | 3470 | CF$UID 3471 | 163 3472 | 3473 | 3474 | CF$UID 3475 | 329 3476 | 3477 | 3478 | 3479 | 1140 3480 | 3481 | $class 3482 | 3483 | CF$UID 3484 | 91 3485 | 3486 | NS.keys 3487 | 3488 | 3489 | CF$UID 3490 | 250 3491 | 3492 | 3493 | CF$UID 3494 | 251 3495 | 3496 | 3497 | NS.objects 3498 | 3499 | 3500 | CF$UID 3501 | 331 3502 | 3503 | 3504 | CF$UID 3505 | 332 3506 | 3507 | 3508 | 3509 | IDEUtilitiesArea 3510 | 260 3511 | {{40, 4}, {1400, 874}} 3512 | 3513 | $class 3514 | 3515 | CF$UID 3516 | 105 3517 | 3518 | NS.objects 3519 | 3520 | 3521 | CF$UID 3522 | 154 3523 | 3524 | 3525 | 3526 | 3527 | $top 3528 | 3529 | State 3530 | 3531 | CF$UID 3532 | 1 3533 | 3534 | 3535 | $version 3536 | 100000 3537 | 3538 | 3539 | -------------------------------------------------------------------------------- /WebContentViewExample.xcodeproj/project.xcworkspace/xcuserdata/nick.xcuserdatad/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEWorkspaceUserSettings_HasAskedToTakeAutomaticSnapshotBeforeSignificantChanges 6 | 7 | IDEWorkspaceUserSettings_SnapshotAutomaticallyBeforeSignificantChanges 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /WebContentViewExample.xcodeproj/xcuserdata/nick.lockwood.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /WebContentViewExample.xcodeproj/xcuserdata/nick.lockwood.xcuserdatad/xcschemes/WebContentViewExample.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | 14 | 20 | 21 | 22 | 23 | 24 | 29 | 30 | 31 | 32 | 39 | 40 | 46 | 47 | 48 | 49 | 50 | 51 | 56 | 57 | 63 | 64 | 65 | 66 | 68 | 69 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /WebContentViewExample.xcodeproj/xcuserdata/nick.lockwood.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | WebContentViewExample.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 010D927713E0C81300158C07 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /WebContentViewExample.xcodeproj/xcuserdata/nick.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /WebContentViewExample.xcodeproj/xcuserdata/nick.xcuserdatad/xcschemes/WebContentViewExample.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | 14 | 20 | 21 | 22 | 23 | 24 | 29 | 30 | 31 | 32 | 38 | 39 | 45 | 46 | 47 | 48 | 49 | 50 | 55 | 56 | 62 | 63 | 64 | 65 | 67 | 68 | 71 | 72 | 73 | -------------------------------------------------------------------------------- /WebContentViewExample.xcodeproj/xcuserdata/nick.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | WebContentViewExample.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 010D927713E0C81300158C07 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /WebContentViewExample/WebContentViewExample-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | ${PRODUCT_NAME} 9 | CFBundleExecutable 10 | ${EXECUTABLE_NAME} 11 | CFBundleIconFile 12 | 13 | CFBundleIdentifier 14 | com.charcoaldesign.${PRODUCT_NAME:rfc1034identifier} 15 | CFBundleInfoDictionaryVersion 16 | 6.0 17 | CFBundleName 18 | ${PRODUCT_NAME} 19 | CFBundlePackageType 20 | APPL 21 | CFBundleShortVersionString 22 | 1.0 23 | CFBundleSignature 24 | ???? 25 | CFBundleVersion 26 | 1.0 27 | LSRequiresIPhoneOS 28 | 29 | NSMainNibFile 30 | MainWindow 31 | UISupportedInterfaceOrientations 32 | 33 | UIInterfaceOrientationPortrait 34 | UIInterfaceOrientationLandscapeLeft 35 | UIInterfaceOrientationLandscapeRight 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /WebContentViewExample/WebContentViewExample-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header for all source files of the 'WebContentViewExample' target in the 'WebContentViewExample' project 3 | // 4 | 5 | #import 6 | 7 | #ifndef __IPHONE_3_0 8 | #warning "This project uses features only available in iPhone SDK 3.0 and later." 9 | #endif 10 | 11 | #ifdef __OBJC__ 12 | #import 13 | #import 14 | #endif 15 | -------------------------------------------------------------------------------- /WebContentViewExample/WebContentViewExampleAppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // WebContentViewExampleAppDelegate.h 3 | // WebContentViewExample 4 | // 5 | // Created by Nick Lockwood on 27/07/2011. 6 | // Copyright 2011 Charcoal Design. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @class WebContentViewExampleViewController; 12 | 13 | @interface WebContentViewExampleAppDelegate : NSObject 14 | 15 | @property (nonatomic, retain) IBOutlet UIWindow *window; 16 | @property (nonatomic, retain) IBOutlet WebContentViewExampleViewController *viewController; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /WebContentViewExample/WebContentViewExampleAppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // WebContentViewExampleAppDelegate.m 3 | // WebContentViewExample 4 | // 5 | // Created by Nick Lockwood on 27/07/2011. 6 | // Copyright 2011 Charcoal Design. All rights reserved. 7 | // 8 | 9 | #import "WebContentViewExampleAppDelegate.h" 10 | #import "WebContentViewExampleViewController.h" 11 | 12 | 13 | @implementation WebContentViewExampleAppDelegate 14 | 15 | @synthesize window; 16 | @synthesize viewController; 17 | 18 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 19 | { 20 | self.window.rootViewController = self.viewController; 21 | [self.window makeKeyAndVisible]; 22 | return YES; 23 | } 24 | 25 | - (void)dealloc 26 | { 27 | [window release]; 28 | [viewController release]; 29 | [super dealloc]; 30 | } 31 | 32 | @end 33 | -------------------------------------------------------------------------------- /WebContentViewExample/WebContentViewExampleViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // WebContentViewExampleViewController.h 3 | // WebContentViewExample 4 | // 5 | // Created by Nick Lockwood on 27/07/2011. 6 | // Copyright 2011 Charcoal Design. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "WebContentView.h" 11 | 12 | @interface WebContentViewExampleViewController : UIViewController 13 | 14 | @property (nonatomic, retain) IBOutlet WebContentView *webContentView; 15 | 16 | - (IBAction)toggleStyles:(UISegmentedControl *)sender; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /WebContentViewExample/WebContentViewExampleViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // WebContentViewExampleViewController.m 3 | // WebContentViewExample 4 | // 5 | // Created by Nick Lockwood on 27/07/2011. 6 | // Copyright 2011 Charcoal Design. All rights reserved. 7 | // 8 | 9 | #import "WebContentViewExampleViewController.h" 10 | 11 | @implementation WebContentViewExampleViewController 12 | 13 | @synthesize webContentView; 14 | 15 | - (IBAction)toggleStyles:(UISegmentedControl *)sender 16 | { 17 | //set styles 18 | NSString *styles = [[NSArray arrayWithObjects:@"", @"styles1", @"styles2", nil] objectAtIndex:sender.selectedSegmentIndex]; 19 | if ([styles length]) 20 | { 21 | webContentView.styles = [NSString stringWithContentsOfFile:[[NSBundle mainBundle] pathForResource:styles ofType:@"css"] 22 | encoding:NSUTF8StringEncoding error:NULL]; 23 | } 24 | else 25 | { 26 | webContentView.styles = @""; 27 | } 28 | } 29 | 30 | - (void)viewDidLoad 31 | { 32 | [super viewDidLoad]; 33 | 34 | //set content 35 | webContentView.content = [NSString stringWithContentsOfFile: 36 | [[NSBundle mainBundle] pathForResource:@"content" ofType:@"html"] 37 | encoding:NSUTF8StringEncoding error:NULL]; 38 | } 39 | 40 | - (void)viewDidUnload 41 | { 42 | [super viewDidUnload]; 43 | self.webContentView = nil; 44 | } 45 | 46 | - (BOOL)webContentView:(WebContentView *)webContentView shouldOpenURL:(NSURL *)URL 47 | { 48 | if ([[URL scheme] isEqualToString:@"custom"]) 49 | { 50 | //custom scheme 51 | [[[[UIAlertView alloc] initWithTitle:@"You clicked a link" 52 | message:@"We intercepted it" 53 | delegate:nil 54 | cancelButtonTitle:@"OK" 55 | otherButtonTitles:nil] autorelease] show]; 56 | return NO; 57 | } 58 | else 59 | { 60 | //ordinary link 61 | return YES; 62 | } 63 | } 64 | 65 | - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 66 | { 67 | return YES; 68 | } 69 | 70 | - (void)dealloc 71 | { 72 | [webContentView release]; 73 | [super dealloc]; 74 | } 75 | 76 | @end 77 | -------------------------------------------------------------------------------- /WebContentViewExample/content.html: -------------------------------------------------------------------------------- 1 |

Lorem ipsum dolor sit amet

2 | 3 |

Consectetur adipiscing elit. Maecenas id quam ante. Etiam at nulla eu tortor laoreet euismod nec a dui. Cras dolor mauris, euismod a vulputate id, faucibus sagittis lacus. Integer ac gravida diam. Proin ornare, urna eget adipiscing cursus, lorem erat tempus leo, eget mattis erat ante eu dui.

4 | 5 |

Maecenas sollicitudin, libero at rutrum tincidunt, dolor felis porttitor lorem, et tincidunt lorem nibh ut sapien. Etiam vulputate felis ac massa rutrum a tincidunt tellus aliquam. Praesent in quam metus, dictum tempus nisi. Integer interdum, arcu sed accumsan ultrices, nulla nibh molestie est, nec molestie massa justo sed arcu. Sed et nibh sem.

-------------------------------------------------------------------------------- /WebContentViewExample/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* Localized versions of Info.plist keys */ 2 | 3 | -------------------------------------------------------------------------------- /WebContentViewExample/en.lproj/MainWindow.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 1024 5 | 10D571 6 | 786 7 | 1038.29 8 | 460.00 9 | 10 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 11 | 112 12 | 13 | 14 | YES 15 | 16 | 17 | 18 | YES 19 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 20 | 21 | 22 | YES 23 | 24 | YES 25 | 26 | 27 | YES 28 | 29 | 30 | 31 | YES 32 | 33 | IBFilesOwner 34 | IBCocoaTouchFramework 35 | 36 | 37 | IBFirstResponder 38 | IBCocoaTouchFramework 39 | 40 | 41 | IBCocoaTouchFramework 42 | 43 | 44 | WebContentViewExampleViewController 45 | 46 | 47 | 1 48 | 49 | IBCocoaTouchFramework 50 | NO 51 | 52 | 53 | 54 | 292 55 | {320, 480} 56 | 57 | 1 58 | MSAxIDEAA 59 | 60 | NO 61 | NO 62 | 63 | IBCocoaTouchFramework 64 | YES 65 | 66 | 67 | 68 | 69 | YES 70 | 71 | 72 | delegate 73 | 74 | 75 | 76 | 4 77 | 78 | 79 | 80 | viewController 81 | 82 | 83 | 84 | 11 85 | 86 | 87 | 88 | window 89 | 90 | 91 | 92 | 14 93 | 94 | 95 | 96 | 97 | YES 98 | 99 | 0 100 | 101 | 102 | 103 | 104 | 105 | -1 106 | 107 | 108 | File's Owner 109 | 110 | 111 | 3 112 | 113 | 114 | WebContentViewExample App Delegate 115 | 116 | 117 | -2 118 | 119 | 120 | 121 | 122 | 10 123 | 124 | 125 | 126 | 127 | 12 128 | 129 | 130 | 131 | 132 | 133 | 134 | YES 135 | 136 | YES 137 | -1.CustomClassName 138 | -2.CustomClassName 139 | 10.CustomClassName 140 | 10.IBEditorWindowLastContentRect 141 | 10.IBPluginDependency 142 | 12.IBEditorWindowLastContentRect 143 | 12.IBPluginDependency 144 | 3.CustomClassName 145 | 3.IBPluginDependency 146 | 147 | 148 | YES 149 | UIApplication 150 | UIResponder 151 | WebContentViewExampleViewController 152 | {{234, 376}, {320, 480}} 153 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 154 | {{525, 346}, {320, 480}} 155 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 156 | WebContentViewExampleAppDelegate 157 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 158 | 159 | 160 | 161 | YES 162 | 163 | 164 | YES 165 | 166 | 167 | 168 | 169 | YES 170 | 171 | 172 | YES 173 | 174 | 175 | 176 | 15 177 | 178 | 179 | 180 | YES 181 | 182 | UIWindow 183 | UIView 184 | 185 | IBUserSource 186 | 187 | 188 | 189 | 190 | WebContentViewExampleAppDelegate 191 | NSObject 192 | 193 | YES 194 | 195 | YES 196 | viewController 197 | window 198 | 199 | 200 | YES 201 | WebContentViewExampleViewController 202 | UIWindow 203 | 204 | 205 | 206 | YES 207 | 208 | YES 209 | viewController 210 | window 211 | 212 | 213 | YES 214 | 215 | viewController 216 | WebContentViewExampleViewController 217 | 218 | 219 | window 220 | UIWindow 221 | 222 | 223 | 224 | 225 | IBProjectSource 226 | WebContentViewExampleAppDelegate.h 227 | 228 | 229 | 230 | WebContentViewExampleAppDelegate 231 | NSObject 232 | 233 | IBUserSource 234 | 235 | 236 | 237 | 238 | WebContentViewExampleViewController 239 | UIViewController 240 | 241 | IBProjectSource 242 | WebContentViewExampleViewController.h 243 | 244 | 245 | 246 | 247 | YES 248 | 249 | NSObject 250 | 251 | IBFrameworkSource 252 | Foundation.framework/Headers/NSError.h 253 | 254 | 255 | 256 | NSObject 257 | 258 | IBFrameworkSource 259 | Foundation.framework/Headers/NSFileManager.h 260 | 261 | 262 | 263 | NSObject 264 | 265 | IBFrameworkSource 266 | Foundation.framework/Headers/NSKeyValueCoding.h 267 | 268 | 269 | 270 | NSObject 271 | 272 | IBFrameworkSource 273 | Foundation.framework/Headers/NSKeyValueObserving.h 274 | 275 | 276 | 277 | NSObject 278 | 279 | IBFrameworkSource 280 | Foundation.framework/Headers/NSKeyedArchiver.h 281 | 282 | 283 | 284 | NSObject 285 | 286 | IBFrameworkSource 287 | Foundation.framework/Headers/NSObject.h 288 | 289 | 290 | 291 | NSObject 292 | 293 | IBFrameworkSource 294 | Foundation.framework/Headers/NSRunLoop.h 295 | 296 | 297 | 298 | NSObject 299 | 300 | IBFrameworkSource 301 | Foundation.framework/Headers/NSThread.h 302 | 303 | 304 | 305 | NSObject 306 | 307 | IBFrameworkSource 308 | Foundation.framework/Headers/NSURL.h 309 | 310 | 311 | 312 | NSObject 313 | 314 | IBFrameworkSource 315 | Foundation.framework/Headers/NSURLConnection.h 316 | 317 | 318 | 319 | NSObject 320 | 321 | IBFrameworkSource 322 | UIKit.framework/Headers/UIAccessibility.h 323 | 324 | 325 | 326 | NSObject 327 | 328 | IBFrameworkSource 329 | UIKit.framework/Headers/UINibLoading.h 330 | 331 | 332 | 333 | NSObject 334 | 335 | IBFrameworkSource 336 | UIKit.framework/Headers/UIResponder.h 337 | 338 | 339 | 340 | UIApplication 341 | UIResponder 342 | 343 | IBFrameworkSource 344 | UIKit.framework/Headers/UIApplication.h 345 | 346 | 347 | 348 | UIResponder 349 | NSObject 350 | 351 | 352 | 353 | UISearchBar 354 | UIView 355 | 356 | IBFrameworkSource 357 | UIKit.framework/Headers/UISearchBar.h 358 | 359 | 360 | 361 | UISearchDisplayController 362 | NSObject 363 | 364 | IBFrameworkSource 365 | UIKit.framework/Headers/UISearchDisplayController.h 366 | 367 | 368 | 369 | UIView 370 | 371 | IBFrameworkSource 372 | UIKit.framework/Headers/UITextField.h 373 | 374 | 375 | 376 | UIView 377 | UIResponder 378 | 379 | IBFrameworkSource 380 | UIKit.framework/Headers/UIView.h 381 | 382 | 383 | 384 | UIViewController 385 | 386 | IBFrameworkSource 387 | UIKit.framework/Headers/UINavigationController.h 388 | 389 | 390 | 391 | UIViewController 392 | 393 | IBFrameworkSource 394 | UIKit.framework/Headers/UIPopoverController.h 395 | 396 | 397 | 398 | UIViewController 399 | 400 | IBFrameworkSource 401 | UIKit.framework/Headers/UISplitViewController.h 402 | 403 | 404 | 405 | UIViewController 406 | 407 | IBFrameworkSource 408 | UIKit.framework/Headers/UITabBarController.h 409 | 410 | 411 | 412 | UIViewController 413 | UIResponder 414 | 415 | IBFrameworkSource 416 | UIKit.framework/Headers/UIViewController.h 417 | 418 | 419 | 420 | UIWindow 421 | UIView 422 | 423 | IBFrameworkSource 424 | UIKit.framework/Headers/UIWindow.h 425 | 426 | 427 | 428 | 429 | 0 430 | IBCocoaTouchFramework 431 | 432 | com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS 433 | 434 | 435 | 436 | com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 437 | 438 | 439 | YES 440 | WebContentViewExample.xcodeproj 441 | 3 442 | 112 443 | 444 | 445 | -------------------------------------------------------------------------------- /WebContentViewExample/en.lproj/WebContentViewExampleViewController.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 1056 5 | 11A511 6 | 1617 7 | 1138 8 | 566.00 9 | 10 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 11 | 534 12 | 13 | 14 | YES 15 | IBUISegmentedControl 16 | IBUIView 17 | IBUILabel 18 | IBProxyObject 19 | 20 | 21 | YES 22 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 23 | 24 | 25 | YES 26 | 27 | YES 28 | 29 | 30 | 31 | 32 | YES 33 | 34 | IBFilesOwner 35 | IBCocoaTouchFramework 36 | 37 | 38 | IBFirstResponder 39 | IBCocoaTouchFramework 40 | 41 | 42 | 43 | 274 44 | 45 | YES 46 | 47 | 48 | 274 49 | 50 | YES 51 | 52 | 53 | 292 54 | {280, 43} 55 | 56 | 57 | 58 | _NS:311 59 | 60 | 1 61 | MCAxIDAAA 62 | 63 | NO 64 | YES 65 | 7 66 | NO 67 | IBCocoaTouchFramework 68 | Native Header Label 69 | 70 | Helvetica 71 | 17 72 | 16 73 | 74 | 75 | 1 76 | MCAwIDAAA 77 | 78 | 79 | 1 80 | 10 81 | 1 82 | 83 | 84 | 85 | 292 86 | {{0, 334}, {280, 26}} 87 | 88 | 89 | 90 | _NS:311 91 | 92 | 1 93 | MSAwIDAAA 94 | 95 | NO 96 | YES 97 | 7 98 | NO 99 | IBCocoaTouchFramework 100 | Native Footer Label 101 | 102 | 103 | 104 | 1 105 | 10 106 | 1 107 | 108 | 109 | {{20, 20}, {280, 360}} 110 | 111 | 112 | 113 | _NS:180 114 | 115 | 3 116 | MQA 117 | 118 | 2 119 | 120 | 121 | IBCocoaTouchFramework 122 | 123 | 124 | 125 | 292 126 | {{20, 397}, {280, 44}} 127 | 128 | 129 | _NS:262 130 | NO 131 | IBCocoaTouchFramework 132 | 3 133 | 0 134 | 135 | YES 136 | Default 137 | Styles 1 138 | Styles 2 139 | 140 | 141 | YES 142 | 143 | 144 | 145 | 146 | 147 | YES 148 | 149 | 150 | 151 | 152 | 153 | YES 154 | {0, 0} 155 | {0, 0} 156 | {0, 0} 157 | 158 | 159 | YES 160 | 161 | 162 | 163 | 164 | 165 | 166 | {{0, 20}, {320, 460}} 167 | 168 | 169 | 170 | 171 | 3 172 | MC43NQA 173 | 174 | 175 | NO 176 | 177 | IBCocoaTouchFramework 178 | 179 | 180 | 181 | 182 | YES 183 | 184 | 185 | view 186 | 187 | 188 | 189 | 7 190 | 191 | 192 | 193 | webContentView 194 | 195 | 196 | 197 | 9 198 | 199 | 200 | 201 | header 202 | 203 | 204 | 205 | 14 206 | 207 | 208 | 209 | footer 210 | 211 | 212 | 213 | 15 214 | 215 | 216 | 217 | toggleStyles: 218 | 219 | 220 | 13 221 | 222 | 19 223 | 224 | 225 | 226 | delegate 227 | 228 | 229 | 230 | 20 231 | 232 | 233 | 234 | 235 | YES 236 | 237 | 0 238 | 239 | 240 | 241 | 242 | 243 | -1 244 | 245 | 246 | File's Owner 247 | 248 | 249 | -2 250 | 251 | 252 | 253 | 254 | 6 255 | 256 | 257 | YES 258 | 259 | 260 | 261 | 262 | 263 | 264 | 8 265 | 266 | 267 | YES 268 | 269 | 270 | 271 | 272 | 273 | 274 | 12 275 | 276 | 277 | 278 | 279 | 13 280 | 281 | 282 | 283 | 284 | 17 285 | 286 | 287 | 288 | 289 | 290 | 291 | YES 292 | 293 | YES 294 | -1.CustomClassName 295 | -1.IBPluginDependency 296 | -2.CustomClassName 297 | -2.IBPluginDependency 298 | 12.IBPluginDependency 299 | 13.IBPluginDependency 300 | 17.IBPluginDependency 301 | 17.IUISegmentedControlInspectorSelectedSegmentMetadataKey 302 | 6.IBPluginDependency 303 | 8.CustomClassName 304 | 8.IBPluginDependency 305 | 306 | 307 | YES 308 | WebContentViewExampleViewController 309 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 310 | UIResponder 311 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 312 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 313 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 314 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 315 | 316 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 317 | WebContentView 318 | com.apple.InterfaceBuilder.IBCocoaTouchPlugin 319 | 320 | 321 | 322 | YES 323 | 324 | 325 | 326 | 327 | 328 | YES 329 | 330 | 331 | 332 | 333 | 20 334 | 335 | 336 | 337 | YES 338 | 339 | WebContentView 340 | UIView 341 | 342 | YES 343 | 344 | YES 345 | delegate 346 | footer 347 | header 348 | 349 | 350 | YES 351 | id 352 | UIView 353 | UIView 354 | 355 | 356 | 357 | YES 358 | 359 | YES 360 | delegate 361 | footer 362 | header 363 | 364 | 365 | YES 366 | 367 | delegate 368 | id 369 | 370 | 371 | footer 372 | UIView 373 | 374 | 375 | header 376 | UIView 377 | 378 | 379 | 380 | 381 | IBProjectSource 382 | ./Classes/WebContentView.h 383 | 384 | 385 | 386 | WebContentViewExampleViewController 387 | UIViewController 388 | 389 | toggleStyles: 390 | UISegmentedControl 391 | 392 | 393 | toggleStyles: 394 | 395 | toggleStyles: 396 | UISegmentedControl 397 | 398 | 399 | 400 | webContentView 401 | WebContentView 402 | 403 | 404 | webContentView 405 | 406 | webContentView 407 | WebContentView 408 | 409 | 410 | 411 | IBProjectSource 412 | ./Classes/WebContentViewExampleViewController.h 413 | 414 | 415 | 416 | 417 | 0 418 | IBCocoaTouchFramework 419 | 420 | com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 421 | 422 | 423 | YES 424 | 3 425 | 534 426 | 427 | 428 | -------------------------------------------------------------------------------- /WebContentViewExample/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // WebContentViewExample 4 | // 5 | // Created by Nick Lockwood on 27/07/2011. 6 | // Copyright 2011 __MyCompanyName__. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | int main(int argc, char *argv[]) 12 | { 13 | NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 14 | int retVal = UIApplicationMain(argc, argv, nil, nil); 15 | [pool release]; 16 | return retVal; 17 | } 18 | -------------------------------------------------------------------------------- /WebContentViewExample/styles1.css: -------------------------------------------------------------------------------- 1 | body { 2 | font-size: 0.7em; 3 | } 4 | 5 | h1 { 6 | color: red; 7 | font-size: 2.1em; 8 | } 9 | 10 | .style1 { 11 | color: green; 12 | font-family: futura; 13 | } 14 | 15 | .style2 { 16 | color: purple; 17 | font-size: 1.2em; 18 | font-family: times; 19 | } -------------------------------------------------------------------------------- /WebContentViewExample/styles2.css: -------------------------------------------------------------------------------- 1 | h1 { 2 | color: green; 3 | font-size: 1.1em; 4 | } 5 | 6 | body { 7 | color: purple; 8 | font: futura; 9 | } --------------------------------------------------------------------------------