UIWebView體系結構(三)UIWebDocumentView和WebView

轉自:http://blog.csdn.net/hursing

WebView是UIWebDocumentView最重要的組合對象,先講WebView吧。

WebView的聲明如下:(代碼好長,點此跳過

[cpp] view plain copy
  1. @interface WebView : WAKView  
  2. {  
  3.     WebViewPrivate *_private;  
  4. }  
  5.   
  6. + (void)registerViewClass:(Class)arg1 representationClass:(Class)arg2 forMIMEType:(id)arg3;  
  7. + (void)registerURLSchemeAsLocal:(id)arg1;  
  8. + (void)setMIMETypesShownAsHTML:(id)arg1;  
  9. + (id)MIMETypesShownAsHTML;  
  10. + (BOOL)canShowMIMETypeAsHTML:(id)arg1;  
  11. + (BOOL)canShowMIMEType:(id)arg1;  
  12. + (BOOL)_canShowMIMEType:(id)arg1 allowingPlugins:(BOOL)arg2;  
  13. + (void)initialize;  
  14. + (void)_makeAllWebViewsPerformSelector:(SEL)arg1;  
  15. + (void)_setTileCacheLayerPoolCapacity:(unsigned int)arg1;  
  16. + (void)_setHTTPPipeliningEnabled:(BOOL)arg1;  
  17. + (BOOL)_HTTPPipeliningEnabled;  
  18. + (double)_defaultMinimumTimerInterval;  
  19. + (void)_setLoadResourcesSerially:(BOOL)arg1;  
  20. + (void)_registerURLSchemeAsAllowingDatabaseAccessInPrivateBrowsing:(id)arg1;  
  21. + (void)_registerURLSchemeAsAllowingLocalStorageAccessInPrivateBrowsing:(id)arg1;  
  22. + (void)_registerURLSchemeAsSecure:(id)arg1;  
  23. + (void)_setDomainRelaxationForbidden:(BOOL)arg1 forURLScheme:(id)arg2;  
  24. + (void)_removeAllUserContentFromGroup:(id)arg1;  
  25. + (void)_removeUserStyleSheetsFromGroup:(id)arg1 world:(id)arg2;  
  26. + (void)_removeUserScriptsFromGroup:(id)arg1 world:(id)arg2;  
  27. + (void)_removeUserStyleSheetFromGroup:(id)arg1 world:(id)arg2 url:(id)arg3;  
  28. + (void)_removeUserScriptFromGroup:(id)arg1 world:(id)arg2 url:(id)arg3;  
  29. + (void)_addUserStyleSheetToGroup:(id)arg1 world:(id)arg2 source:(id)arg3 url:(id)arg4 whitelist:(id)arg5 blacklist:(id)arg6 injectedFrames:(int)arg7;  
  30. + (void)_addUserStyleSheetToGroup:(id)arg1 world:(id)arg2 source:(id)arg3 url:(id)arg4 whitelist:(id)arg5 blacklist:(id)arg6;  
  31. + (void)_addUserScriptToGroup:(id)arg1 world:(id)arg2 source:(id)arg3 url:(id)arg4 whitelist:(id)arg5 blacklist:(id)arg6 injectionTime:(int)arg7 injectedFrames:(int)arg8;  
  32. + (void)_addUserScriptToGroup:(id)arg1 world:(id)arg2 source:(id)arg3 url:(id)arg4 whitelist:(id)arg5 blacklist:(id)arg6 injectionTime:(int)arg7;  
  33. + (void)_resetOriginAccessWhitelists;  
  34. + (void)_removeOriginAccessWhitelistEntryWithSourceOrigin:(id)arg1 destinationProtocol:(id)arg2 destinationHost:(id)arg3 allowDestinationSubdomains:(BOOL)arg4;  
  35. + (void)_addOriginAccessWhitelistEntryWithSourceOrigin:(id)arg1 destinationProtocol:(id)arg2 destinationHost:(id)arg3 allowDestinationSubdomains:(BOOL)arg4;  
  36. + (unsigned int)_maximumImageSizeBeforeSubsampling;  
  37. + (void)_setMaximumImageSizeBeforeSubsampling:(unsigned int)arg1;  
  38. + (id)_productivityDocumentMIMETypes;  
  39. + (BOOL)_shouldUseFontSmoothing;  
  40. + (void)_setShouldUseFontSmoothing:(BOOL)arg1;  
  41. + (id)_decodeData:(id)arg1;  
  42. + (BOOL)_canHandleRequest:(id)arg1;  
  43. + (BOOL)_canHandleRequest:(id)arg1 forMainFrame:(BOOL)arg2;  
  44. + (BOOL)_representationExistsForURLScheme:(id)arg1;  
  45. + (id)_generatedMIMETypeForURLScheme:(id)arg1;  
  46. + (void)_registerViewClass:(Class)arg1 representationClass:(Class)arg2 forURLScheme:(id)arg3;  
  47. + (void)_unregisterViewClassAndRepresentationClassForMIMEType:(id)arg1;  
  48. + (BOOL)_isRemoteInspectorEnabled;  
  49. + (void)_disableAutoStartRemoteInspector;  
  50. + (void)_disableRemoteInspector;  
  51. + (void)_enableRemoteInspector;  
  52. + (id)sharedWebInspectorServer;  
  53. + (id)_MIMETypeForFile:(id)arg1;  
  54. + (BOOL)_isUnderMemoryPressure;  
  55. + (BOOL)_allowCookies;  
  56. + (void)_setAllowCookies:(BOOL)arg1;  
  57. + (BOOL)_acceleratedImageDecoding;  
  58. + (void)_setAcceleratedImageDecoding:(BOOL)arg1;  
  59. + (BOOL)canShowFile:(id)arg1;  
  60. + (void)closeAllWebViews;  
  61. + (BOOL)canCloseAllWebViews;  
  62. + (BOOL)_allowsRoundingHacks;  
  63. + (void)_setAllowsRoundingHacks:(BOOL)arg1;  
  64. + (void)_setAlwaysUsesComplexTextCodePath:(BOOL)arg1;  
  65. + (BOOL)_viewClass:(Class *)arg1 andRepresentationClass:(Class *)arg2 forMIMEType:(id)arg3 allowingPlugins:(BOOL)arg4;  
  66. + (void)_unregisterPluginMIMEType:(id)arg1;  
  67. + (void)_registerPluginMIMEType:(id)arg1;  
  68. + (BOOL)isCharacterSmartReplaceExempt:(unsigned short)arg1 isPreviousCharacter:(BOOL)arg2;  
  69. + (void)discardAllCompiledCode;  
  70. + (void)drainLayerPool;  
  71. + (void)purgeInactiveFontData;  
  72. + (void)garbageCollectNow;  
  73. + (void)releaseFastMallocMemory;  
  74. + (void)willEnterBackgroundWithCompletionHandler:(id)arg1;  
  75. + (void)_releaseMemoryNow;  
  76. + (void)registerForMemoryNotifications;  
  77. + (void)_handleMemoryWarning;  
  78. + (void)enableWebThread;  
  79. + (id)_supportedMIMETypes;  
  80. + (void)_reportException:(struct OpaqueJSValue *)arg1 inContext:(struct OpaqueJSContext *)arg2;  
  81. + (id)_standardUserAgentWithApplicationName:(id)arg1;  
  82. + (id)_standardUserAgentWithApplicationName:(id)arg1 osMarketingVersion:(id)arg2;  
  83. + (void)_preflightSpellChecker;  
  84. + (void)_preflightSpellCheckerNow:(id)arg1;  
  85. + (void)_preferencesRemovedNotification:(id)arg1;  
  86. + (void)_cacheModelChangedNotification:(id)arg1;  
  87. + (unsigned int)_maxCacheModelInAnyInstance;  
  88. + (unsigned int)_didSetCacheModel;  
  89. + (unsigned int)_cacheModel;  
  90. + (void)_setCacheModel:(unsigned int)arg1;  
  91. + (BOOL)shouldIncludeInWebKitStatistics;  
  92. + (void)_setPDFViewClass:(Class)arg1;  
  93. + (Class)_getPDFViewClass;  
  94. + (void)_setPDFRepresentationClass:(Class)arg1;  
  95. + (Class)_getPDFRepresentationClass;  
  96. - (id)previousValidKeyView;  
  97. - (id)currentNodeHighlight;  
  98. - (void)setCurrentNodeHighlight:(id)arg1;  
  99. - (BOOL)shouldUpdateWhileOffscreen;  
  100. - (void)setShouldUpdateWhileOffscreen:(BOOL)arg1;  
  101. - (BOOL)drawsBackground;  
  102. - (void)setDrawsBackground:(BOOL)arg1;  
  103. - (id)mainFrameDocument;  
  104. - (id)mainFrameIconURL;  
  105. - (id)mainFrameTitle;  
  106. - (BOOL)isLoading;  
  107. - (id)mainFrameURL;  
  108. - (void)setMainFrameURL:(id)arg1;  
  109. - (double)estimatedProgress;  
  110. - (id)groupName;  
  111. - (void)setGroupName:(id)arg1;  
  112. - (BOOL)searchFor:(id)arg1 direction:(BOOL)arg2 caseSensitive:(BOOL)arg3 wrap:(BOOL)arg4;  
  113. - (void)setNextKeyView:(id)arg1;  
  114. - (id)_webcore_effectiveFirstResponder;  
  115. - (BOOL)becomeFirstResponder;  
  116. - (BOOL)acceptsFirstResponder;  
  117. - (id)elementAtPoint:(struct CGPoint)arg1;  
  118. - (id)_elementAtWindowPoint:(struct CGPoint)arg1;  
  119. - (id)documentViewAtWindowPoint:(struct CGPoint)arg1;  
  120. - (id)hostWindow;  
  121. - (void)setHostWindow:(id)arg1;  
  122. - (id)userAgentForURL:(id)arg1;  
  123. - (struct String)_userAgentString;  
  124. - (id)windowScriptObject;  
  125. - (id)stringByEvaluatingJavaScriptFromString:(id)arg1;  
  126. - (id)customTextEncodingName;  
  127. - (id)_mainFrameOverrideEncoding;  
  128. - (void)setCustomTextEncodingName:(id)arg1;  
  129. - (BOOL)supportsTextEncoding;  
  130. - (id)mediaStyle;  
  131. - (void)setMediaStyle:(id)arg1;  
  132. - (id)customUserAgent;  
  133. - (void)setCustomUserAgent:(id)arg1;  
  134. - (id)applicationNameForUserAgent;  
  135. - (void)setApplicationNameForUserAgent:(id)arg1;  
  136. - (void)_resetZoom:(id)arg1 isTextOnly:(BOOL)arg2;  
  137. - (BOOL)_canResetZoom:(BOOL)arg1;  
  138. - (void)_zoomIn:(id)arg1 isTextOnly:(BOOL)arg2;  
  139. - (void)_zoomOut:(id)arg1 isTextOnly:(BOOL)arg2;  
  140. - (BOOL)_canZoomIn:(BOOL)arg1;  
  141. - (BOOL)_canZoomOut:(BOOL)arg1;  
  142. - (BOOL)_realZoomMultiplierIsTextOnly;  
  143. - (float)_realZoomMultiplier;  
  144. - (float)_zoomMultiplier:(BOOL)arg1;  
  145. - (void)_setZoomMultiplier:(float)arg1 isTextOnly:(BOOL)arg2;  
  146. - (float)textSizeMultiplier;  
  147. - (void)setTextSizeMultiplier:(float)arg1;  
  148. - (BOOL)goToBackForwardItem:(id)arg1;  
  149. - (BOOL)goForward;  
  150. - (BOOL)goBack;  
  151. - (void)setMaintainsBackForwardList:(BOOL)arg1;  
  152. - (id)backForwardList;  
  153. - (id)selectedFrame;  
  154. - (id)mainFrame;  
  155. - (id)frameLoadDelegate;  
  156. - (void)setFrameLoadDelegate:(id)arg1;  
  157. - (id)_frameLoadDelegateForwarder;  
  158. - (id)policyDelegate;  
  159. - (void)setPolicyDelegate:(id)arg1;  
  160. - (id)downloadDelegate;  
  161. - (void)setDownloadDelegate:(id)arg1;  
  162. - (id)resourceLoadDelegate;  
  163. - (void)setResourceLoadDelegate:(id)arg1;  
  164. - (id)_resourceLoadDelegateForwarder;  
  165. - (id)UIDelegate;  
  166. - (void)setUIDelegate:(id)arg1;  
  167. - (id)preferencesIdentifier;  
  168. - (void)setPreferencesIdentifier:(id)arg1;  
  169. - (id)preferences;  
  170. - (void)setPreferences:(id)arg1;  
  171. - (void)_updateScreenScaleFromWindow;  
  172. - (void)_wakWindowScreenScaleChanged:(id)arg1;  
  173. - (void)viewDidMoveToWindow;  
  174. - (BOOL)shouldCloseWithWindow;  
  175. - (void)setShouldCloseWithWindow:(BOOL)arg1;  
  176. - (void)close;  
  177. - (void)finalize;  
  178. - (void)dealloc;  
  179. - (id)initWithFrame:(struct CGRect)arg1 frameName:(id)arg2 groupName:(id)arg3;  
  180. - (id)initWithFrame:(struct CGRect)arg1;  
  181. - (id)_initWithArguments:(id)arg1;  
  182. - (BOOL)_isMIMETypeRegisteredAsPlugin:(id)arg1;  
  183. - (id)_pluginForExtension:(id)arg1;  
  184. - (id)_videoProxyPluginForMIMEType:(id)arg1;  
  185. - (id)_pluginForMIMEType:(id)arg1;  
  186. - (BOOL)_canShowMIMEType:(id)arg1;  
  187. - (void)_addToAllWebViewsSet;  
  188. - (void)_removeFromAllWebViewsSet;  
  189. - (void)_setWebGLEnabled:(BOOL)arg1;  
  190. - (BOOL)_webGLEnabled;  
  191. - (void)_setWantsTelephoneNumberParsing:(BOOL)arg1;  
  192. - (BOOL)_wantsTelephoneNumberParsing;  
  193. - (void)_documentScaleChanged;  
  194. - (id)_fixedPositionContent;  
  195. - (void)_setMinimumTimerInterval:(double)arg1;  
  196. - (BOOL)searchFor:(id)arg1 direction:(BOOL)arg2 caseSensitive:(BOOL)arg3 wrap:(BOOL)arg4 startInSelection:(BOOL)arg5;  
  197. - (unsigned int)countMatchesForText:(id)arg1 caseSensitive:(BOOL)arg2 highlight:(BOOL)arg3 limit:(unsigned int)arg4 markMatches:(BOOL)arg5;  
  198. - (unsigned int)markAllMatchesForText:(id)arg1 caseSensitive:(BOOL)arg2 highlight:(BOOL)arg3 limit:(unsigned int)arg4;  
  199. - (unsigned int)_pageCount;  
  200. - (float)_gapBetweenPages;  
  201. - (void)_setGapBetweenPages:(float)arg1;  
  202. - (float)_pageLength;  
  203. - (void)_setPageLength:(float)arg1;  
  204. - (BOOL)_paginationBehavesLikeColumns;  
  205. - (void)_setPaginationBehavesLikeColumns:(BOOL)arg1;  
  206. - (int)_paginationMode;  
  207. - (void)_setPaginationMode:(int)arg1;  
  208. - (BOOL)_useFixedLayout;  
  209. - (void)_setUseFixedLayout:(BOOL)arg1;  
  210. - (float)_viewScaleFactor;  
  211. - (void)_scaleWebView:(float)arg1 atOrigin:(struct CGPoint)arg2;  
  212. - (void)setCSSAnimationsSuspended:(BOOL)arg1;  
  213. - (BOOL)cssAnimationsSuspended;  
  214. - (void)_updateActiveState;  
  215. - (id)trackedRepaintRects;  
  216. - (void)resetTrackedRepaints;  
  217. - (BOOL)isTrackingRepaints;  
  218. - (void)setTracksRepaints:(BOOL)arg1;  
  219. - (BOOL)_includesFlattenedCompositingLayersWhenDrawingToBitmap;  
  220. - (void)_setIncludesFlattenedCompositingLayersWhenDrawingToBitmap:(BOOL)arg1;  
  221. - (BOOL)_isSoftwareRenderable;  
  222. - (void)setValidationMessageTimerMagnification:(int)arg1;  
  223. - (int)validationMessageTimerMagnification;  
  224. - (void)setInteractiveFormValidationEnabled:(BOOL)arg1;  
  225. - (BOOL)interactiveFormValidationEnabled;  
  226. - (void)_setBaseCTM:(struct CGAffineTransform)arg1 forContext:(struct CGContext *)arg2;  
  227. - (BOOL)_isUsingAcceleratedCompositing;  
  228. - (void)_setPostsAcceleratedCompositingNotifications:(BOOL)arg1;  
  229. - (BOOL)_postsAcceleratedCompositingNotifications;  
  230. - (void)_setJavaScriptURLsAreAllowed:(BOOL)arg1;  
  231. - (BOOL)areMemoryCacheDelegateCallsEnabled;  
  232. - (void)setMemoryCacheDelegateCallsEnabled:(BOOL)arg1;  
  233. - (BOOL)isSelectTrailingWhitespaceEnabled;  
  234. - (void)setSelectTrailingWhitespaceEnabled:(BOOL)arg1;  
  235. - (void)_clearMainFrameName;  
  236. - (void)_setCustomHTMLTokenizerChunkSize:(int)arg1;  
  237. - (void)_setCustomHTMLTokenizerTimeDelay:(double)arg1;  
  238. - (void)_executeCoreCommandByName:(id)arg1 value:(id)arg2;  
  239. - (BOOL)_catchesDelegateExceptions;  
  240. - (void)_setCatchesDelegateExceptions:(BOOL)arg1;  
  241. - (id)textIteratorForRect:(struct CGRect)arg1;  
  242. - (void)_setGlobalHistoryItem:(struct HistoryItem *)arg1;  
  243. - (id)_globalHistoryItem;  
  244. - (void)setUsesPageCache:(BOOL)arg1;  
  245. - (BOOL)usesPageCache;  
  246. - (id)_touchEventRegions;  
  247. - (void)_overflowScrollPositionChangedTo:(struct CGPoint)arg1 forNode:(id)arg2 isUserScroll:(BOOL)arg3;  
  248. - (void)_setCustomFixedPositionLayoutRect:(struct CGRect)arg1;  
  249. - (void)_setCustomFixedPositionLayoutRectInWebThread:(struct CGRect)arg1 synchronize:(BOOL)arg2;  
  250. - (void)_synchronizeCustomFixedPositionLayoutRect;  
  251. - (struct CGSize)_fixedLayoutSize;  
  252. - (void)_setFixedLayoutSize:(struct CGSize)arg1;  
  253. - (void)_setNetworkStateIsOnline:(BOOL)arg1;  
  254. - (BOOL)_allowsMessaging;  
  255. - (void)_setAllowsMessaging:(BOOL)arg1;  
  256. - (BOOL)_isClosing;  
  257. - (BOOL)_isStopping;  
  258. - (id)quickLookContentForURL:(id)arg1;  
  259. - (void)setDefersCallbacks:(BOOL)arg1;  
  260. - (BOOL)defersCallbacks;  
  261. - (struct CGColor *)backgroundColor;  
  262. - (void)setBackgroundColor:(struct CGColor *)arg1;  
  263. - (void)_detachScriptDebuggerFromAllFrames;  
  264. - (void)_attachScriptDebuggerToAllFrames;  
  265. - (void)_setNeedsUnrestrictedGetMatchedCSSRules:(BOOL)arg1;  
  266. - (BOOL)_setMediaLayer:(id)arg1 forPluginView:(id)arg2;  
  267. - (void)_restorePlugInsFromCache;  
  268. - (void)_stopAllPlugInsForPageCache;  
  269. - (void)_stopAllPlugIns;  
  270. - (void)_startAllPlugIns;  
  271. - (void)_clearBackForwardCache;  
  272. - (void)_destroyAllPlugIns;  
  273. - (void)_locked_recursivelyPerformPlugInSelector:(SEL)arg1 inFrame:(id)arg2;  
  274. - (BOOL)_pluginsAreRunning;  
  275. - (BOOL)_locked_plugInsAreRunningInFrame:(id)arg1;  
  276. - (void)_setCookieEnabled:(BOOL)arg1;  
  277. - (BOOL)_cookieEnabled;  
  278. - (BOOL)_inFastImageScalingMode;  
  279. - (void)_setUseFastImageScalingMode:(BOOL)arg1;  
  280. - (BOOL)_inViewSourceMode;  
  281. - (void)_setInViewSourceMode:(BOOL)arg1;  
  282. - (void)_setFontFallbackPrefersPictographs:(BOOL)arg1;  
  283. - (id)_displayURL;  
  284. - (void)_clearDelegates;  
  285. - (void)caretChanged;  
  286. - (void)removeAllCaretChangeListeners;  
  287. - (void)removeCaretChangeListener:(id)arg1;  
  288. - (void)addCaretChangeListener:(id)arg1;  
  289. - (id)caretChangeListeners;  
  290. - (void)setCaretChangeListener:(id)arg1;  
  291. - (id)caretChangeListener;  
  292. - (id)_webMailDelegate;  
  293. - (void)setWebMailDelegate:(id)arg1;  
  294. - (id)_UIKitDelegate;  
  295. - (void)_setUIKitDelegate:(id)arg1;  
  296. - (void)_didCommitLoadForFrame:(id)arg1;  
  297. - (BOOL)_isPerformingProgrammaticFocus;  
  298. - (void)_popPerformingProgrammaticFocus;  
  299. - (void)_pushPerformingProgrammaticFocus;  
  300. - (void)_closeWindow;  
  301. - (id)_editingDelegateForwarder;  
  302. - (id)_UIDelegateForSelector:(SEL)arg1;  
  303. - (id)_UIDelegateForwarder;  
  304. - (id)_policyDelegateForwarder;  
  305. - (void)_cacheHistoryDelegateImplementations;  
  306. - (void)_cacheScriptDebugDelegateImplementations;  
  307. - (void)_cacheFrameLoadDelegateImplementations;  
  308. - (void)_cacheResourceLoadDelegateImplementations;  
  309. - (id)_UIKitDelegateForwarder;  
  310. - (void)_preferencesChanged:(id)arg1;  
  311. - (void)_preferencesChangedNotification:(id)arg1;  
  312. - (BOOL)_needsUnrestrictedGetMatchedCSSRules;  
  313. - (BOOL)_needsPreHTML5ParserQuirks;  
  314. - (id)_formDelegateForSelector:(SEL)arg1;  
  315. - (id)_formDelegateForwarder;  
  316. - (id)_formDelegate;  
  317. - (void)_setFormDelegate:(id)arg1;  
  318. - (void)_loadBackForwardListFromOtherView:(id)arg1;  
  319. - (void)_mouseDidMoveOverElement:(id)arg1 modifierFlags:(unsigned int)arg2;  
  320. - (struct Page *)page;  
  321. - (id)remoteInspectorUserInfo;  
  322. - (void)setRemoteInspectorUserInfo:(id)arg1;  
  323. - (id)hostApplicationName;  
  324. - (id)hostApplicationBundleId;  
  325. - (void)setHostApplicationBundleId:(id)arg1 name:(id)arg2;  
  326. - (void)setIndicatingForRemoteInspector:(BOOL)arg1;  
  327. - (void)setAllowsRemoteInspection:(BOOL)arg1;  
  328. - (BOOL)allowsRemoteInspection;  
  329. - (BOOL)canBeRemotelyInspected;  
  330. - (id)inspector;  
  331. - (id)_openNewWindowWithRequest:(id)arg1;  
  332. - (id)_downloadURL:(id)arg1;  
  333. - (BOOL)_isProcessingUserGesture;  
  334. - (void)_close;  
  335. - (void)_closeWithFastTeardown;  
  336. - (void)_closePluginDatabases;  
  337. - (void)_setResourceLoadSchedulerSuspended:(BOOL)arg1;  
  338. - (void)_didFinishScrollingOrZooming;  
  339. - (void)_willStartScrollingOrZooming;  
  340. - (void)_dispatchTileDidDraw:(id)arg1;  
  341. - (id)styleAtSelectionStart;  
  342. - (void)_dispatchUnloadEvent;  
  343. - (BOOL)_isClosed;  
  344. - (BOOL)_viewClass:(Class *)arg1 andRepresentationClass:(Class *)arg2 forMIMEType:(id)arg3;  
  345. - (void)updateLayoutIgnorePendingStyleSheets;  
  346. - (id)initSimpleHTMLDocumentWithStyle:(id)arg1 frame:(struct CGRect)arg2 preferences:(id)arg3 groupName:(id)arg4;  
  347. - (void)_viewWillDrawInternal;  
  348. - (id)_initWithFrame:(struct CGRect)arg1 frameName:(id)arg2 groupName:(id)arg3 usesDocumentViews:(BOOL)arg4;  
  349. - (void)_commonInitializationWithFrameName:(id)arg1 groupName:(id)arg2;  
  350. - (void)_dispatchPendingLoadRequests;  
  351. - (void)_setUIWebViewUserAgentWithBuildVersion:(id)arg1;  
  352. - (void)_setBrowserUserAgentProductVersion:(id)arg1 buildVersion:(id)arg2 bundleVersion:(id)arg3;  
  353. - (void)makeTextStandardSize:(id)arg1;  
  354. - (BOOL)canMakeTextStandardSize;  
  355. - (void)makeTextLarger:(id)arg1;  
  356. - (BOOL)canMakeTextLarger;  
  357. - (void)makeTextSmaller:(id)arg1;  
  358. - (BOOL)canMakeTextSmaller;  
  359. - (void)reloadFromOrigin:(id)arg1;  
  360. - (void)reload:(id)arg1;  
  361. - (void)stopLoadingAndClear;  
  362. - (void)stopLoading:(id)arg1;  
  363. - (void)goForward:(id)arg1;  
  364. - (void)goBack:(id)arg1;  
  365. - (BOOL)canGoForward;  
  366. - (BOOL)canGoBack;  
  367. - (void)takeStringURLFrom:(id)arg1;  
  368. - (void)removeVisitedLink:(id)arg1;  
  369. - (void)addVisitedLinks:(id)arg1;  
  370. - (float)mediaVolume;  
  371. - (void)setMediaVolume:(float)arg1;  
  372. - (void)resetPageZoom:(id)arg1;  
  373. - (BOOL)canResetPageZoom;  
  374. - (void)zoomPageOut:(id)arg1;  
  375. - (BOOL)canZoomPageOut;  
  376. - (void)zoomPageIn:(id)arg1;  
  377. - (BOOL)canZoomPageIn;  
  378. - (float)pageSizeMultiplier;  
  379. - (void)setPageSizeMultiplier:(float)arg1;  
  380. - (void)setAllowsUndo:(BOOL)arg1;  
  381. - (BOOL)allowsUndo;  
  382. - (void)scrollDOMRangeToVisible:(id)arg1 withInset:(float)arg2;  
  383. - (void)scrollDOMRangeToVisible:(id)arg1;  
  384. - (id)rectsForTextMatches;  
  385. - (void)unmarkAllTextMatches;  
  386. - (unsigned int)countMatchesForText:(id)arg1 inDOMRange:(id)arg2 options:(unsigned int)arg3 highlight:(BOOL)arg4 limit:(unsigned int)arg5 markMatches:(BOOL)arg6;  
  387. - (unsigned int)countMatchesForText:(id)arg1 options:(unsigned int)arg2 highlight:(BOOL)arg3 limit:(unsigned int)arg4 markMatches:(BOOL)arg5;  
  388. - (BOOL)canMarkAllTextMatches;  
  389. - (BOOL)shouldClose;  
  390. - (id)historyDelegate;  
  391. - (void)setHistoryDelegate:(id)arg1;  
  392. - (id)scriptDebugDelegate;  
  393. - (void)setScriptDebugDelegate:(id)arg1;  
  394. - (BOOL)tabKeyCyclesThroughElements;  
  395. - (void)setTabKeyCyclesThroughElements:(BOOL)arg1;  
  396. - (void)setMainFrameDocumentReady:(BOOL)arg1;  
  397. - (id)DOMRangeOfString:(id)arg1 relativeTo:(id)arg2 options:(unsigned int)arg3;  
  398. - (BOOL)findString:(id)arg1 options:(unsigned int)arg2;  
  399. - (id)computedStyleForElement:(id)arg1 pseudoElement:(id)arg2;  
  400. - (id)styleDeclarationWithText:(id)arg1;  
  401. - (id)editingDelegate;  
  402. - (void)setEditingDelegate:(id)arg1;  
  403. - (void)registerForEditingDelegateNotification:(id)arg1 selector:(SEL)arg2;  
  404. - (id)undoManager;  
  405. - (BOOL)isContinuousSpellCheckingEnabled;  
  406. - (void)setContinuousSpellCheckingEnabled:(BOOL)arg1;  
  407. - (BOOL)smartInsertDeleteEnabled;  
  408. - (void)setSmartInsertDeleteEnabled:(BOOL)arg1;  
  409. - (id)typingStyle;  
  410. - (void)setTypingStyle:(id)arg1;  
  411. - (BOOL)isEditable;  
  412. - (void)setEditable:(BOOL)arg1;  
  413. - (int)selectionAffinity;  
  414. - (id)selectedDOMRange;  
  415. - (void)setSelectedDOMRange:(id)arg1 affinity:(int)arg2;  
  416. - (BOOL)maintainsInactiveSelection;  
  417. - (BOOL)_shouldChangeSelectedDOMRange:(id)arg1 toDOMRange:(id)arg2 affinity:(int)arg3 stillSelecting:(BOOL)arg4;  
  418. - (id)editableDOMRangeForPoint:(struct CGPoint)arg1;  
  419. - (BOOL)isAutomaticSpellingCorrectionEnabled;  
  420. - (BOOL)isAutomaticTextReplacementEnabled;  
  421. - (BOOL)isAutomaticDashSubstitutionEnabled;  
  422. - (BOOL)isAutomaticLinkDetectionEnabled;  
  423. - (BOOL)isAutomaticQuoteSubstitutionEnabled;  
  424. - (void)applyStyle:(id)arg1;  
  425. - (void)deleteSelection;  
  426. - (void)replaceSelectionWithArchive:(id)arg1;  
  427. - (void)replaceSelectionWithMarkupString:(id)arg1;  
  428. - (void)replaceSelectionWithText:(id)arg1;  
  429. - (void)replaceSelectionWithNode:(id)arg1;  
  430. - (id)typingAttributes;  
  431. - (void)insertText:(id)arg1;  
  432. - (void)insertDictationPhrases:(id)arg1 metadata:(id)arg2;  
  433. - (void)toggleUnderline:(id)arg1;  
  434. - (void)toggleItalic:(id)arg1;  
  435. - (void)toggleBold:(id)arg1;  
  436. - (void)clearText:(id)arg1;  
  437. - (void)yankAndSelect:(id)arg1;  
  438. - (void)yank:(id)arg1;  
  439. - (void)uppercaseWord:(id)arg1;  
  440. - (void)unscript:(id)arg1;  
  441. - (void)underline:(id)arg1;  
  442. - (void)transpose:(id)arg1;  
  443. - (void)toggleBaseWritingDirection:(id)arg1;  
  444. - (void)takeFindStringFromSelection:(id)arg1;  
  445. - (void)swapWithMark:(id)arg1;  
  446. - (void)superscript:(id)arg1;  
  447. - (void)subscript:(id)arg1;  
  448. - (void)stopSpeaking:(id)arg1;  
  449. - (void)startSpeaking:(id)arg1;  
  450. - (void)showGuessPanel:(id)arg1;  
  451. - (void)setMark:(id)arg1;  
  452. - (void)selectWord:(id)arg1;  
  453. - (void)selectToMark:(id)arg1;  
  454. - (void)selectSentence:(id)arg1;  
  455. - (void)selectParagraph:(id)arg1;  
  456. - (void)selectLine:(id)arg1;  
  457. - (void)selectAll:(id)arg1;  
  458. - (void)scrollToEndOfDocument:(id)arg1;  
  459. - (void)scrollToBeginningOfDocument:(id)arg1;  
  460. - (void)scrollPageUp:(id)arg1;  
  461. - (void)scrollPageDown:(id)arg1;  
  462. - (void)scrollLineUp:(id)arg1;  
  463. - (void)scrollLineDown:(id)arg1;  
  464. - (void)performFindPanelAction:(id)arg1;  
  465. - (void)pasteFont:(id)arg1;  
  466. - (void)pasteAsRichText:(id)arg1;  
  467. - (void)pasteAsPlainText:(id)arg1;  
  468. - (void)paste:(id)arg1;  
  469. - (void)pageUpAndModifySelection:(id)arg1;  
  470. - (void)pageUp:(id)arg1;  
  471. - (void)pageDownAndModifySelection:(id)arg1;  
  472. - (void)pageDown:(id)arg1;  
  473. - (void)orderFrontSubstitutionsPanel:(id)arg1;  
  474. - (void)outdent:(id)arg1;  
  475. - (void)moveWordRightAndModifySelection:(id)arg1;  
  476. - (void)moveWordRight:(id)arg1;  
  477. - (void)moveWordLeftAndModifySelection:(id)arg1;  
  478. - (void)moveWordLeft:(id)arg1;  
  479. - (void)moveWordForwardAndModifySelection:(id)arg1;  
  480. - (void)moveWordForward:(id)arg1;  
  481. - (void)moveWordBackwardAndModifySelection:(id)arg1;  
  482. - (void)moveWordBackward:(id)arg1;  
  483. - (void)moveUpAndModifySelection:(id)arg1;  
  484. - (void)moveUp:(id)arg1;  
  485. - (void)moveToRightEndOfLineAndModifySelection:(id)arg1;  
  486. - (void)moveToRightEndOfLine:(id)arg1;  
  487. - (void)moveToLeftEndOfLineAndModifySelection:(id)arg1;  
  488. - (void)moveToLeftEndOfLine:(id)arg1;  
  489. - (void)moveToEndOfSentenceAndModifySelection:(id)arg1;  
  490. - (void)moveToEndOfSentence:(id)arg1;  
  491. - (void)moveToEndOfParagraphAndModifySelection:(id)arg1;  
  492. - (void)moveToEndOfParagraph:(id)arg1;  
  493. - (void)moveToEndOfLineAndModifySelection:(id)arg1;  
  494. - (void)moveToEndOfLine:(id)arg1;  
  495. - (void)moveToEndOfDocumentAndModifySelection:(id)arg1;  
  496. - (void)moveToEndOfDocument:(id)arg1;  
  497. - (void)moveToBeginningOfSentenceAndModifySelection:(id)arg1;  
  498. - (void)moveToBeginningOfSentence:(id)arg1;  
  499. - (void)moveToBeginningOfParagraphAndModifySelection:(id)arg1;  
  500. - (void)moveToBeginningOfParagraph:(id)arg1;  
  501. - (void)moveToBeginningOfLineAndModifySelection:(id)arg1;  
  502. - (void)moveToBeginningOfLine:(id)arg1;  
  503. - (void)moveToBeginningOfDocumentAndModifySelection:(id)arg1;  
  504. - (void)moveToBeginningOfDocument:(id)arg1;  
  505. - (void)moveRightAndModifySelection:(id)arg1;  
  506. - (void)moveRight:(id)arg1;  
  507. - (void)moveParagraphForwardAndModifySelection:(id)arg1;  
  508. - (void)moveParagraphBackwardAndModifySelection:(id)arg1;  
  509. - (void)moveLeftAndModifySelection:(id)arg1;  
  510. - (void)moveLeft:(id)arg1;  
  511. - (void)moveForwardAndModifySelection:(id)arg1;  
  512. - (void)moveForward:(id)arg1;  
  513. - (void)moveDownAndModifySelection:(id)arg1;  
  514. - (void)moveDown:(id)arg1;  
  515. - (void)moveBackwardAndModifySelection:(id)arg1;  
  516. - (void)moveBackward:(id)arg1;  
  517. - (void)makeTextWritingDirectionRightToLeft:(id)arg1;  
  518. - (void)makeTextWritingDirectionNatural:(id)arg1;  
  519. - (void)makeTextWritingDirectionLeftToRight:(id)arg1;  
  520. - (void)makeBaseWritingDirectionRightToLeft:(id)arg1;  
  521. - (void)makeBaseWritingDirectionLeftToRight:(id)arg1;  
  522. - (void)lowercaseWord:(id)arg1;  
  523. - (void)insertTabIgnoringFieldEditor:(id)arg1;  
  524. - (void)insertTab:(id)arg1;  
  525. - (void)insertParagraphSeparator:(id)arg1;  
  526. - (void)insertNewlineIgnoringFieldEditor:(id)arg1;  
  527. - (void)insertNewline:(id)arg1;  
  528. - (void)insertLineBreak:(id)arg1;  
  529. - (void)insertBacktab:(id)arg1;  
  530. - (void)indent:(id)arg1;  
  531. - (void)ignoreSpelling:(id)arg1;  
  532. - (void)deleteWordForward:(id)arg1;  
  533. - (void)deleteWordBackward:(id)arg1;  
  534. - (void)deleteToMark:(id)arg1;  
  535. - (void)deleteToEndOfParagraph:(id)arg1;  
  536. - (void)deleteToEndOfLine:(id)arg1;  
  537. - (void)deleteToBeginningOfParagraph:(id)arg1;  
  538. - (void)deleteToBeginningOfLine:(id)arg1;  
  539. - (void)deleteForward:(id)arg1;  
  540. - (void)deleteBackwardByDecomposingPreviousCharacter:(id)arg1;  
  541. - (void)deleteBackward:(id)arg1;  
  542. - (void)delete:(id)arg1;  
  543. - (void)cut:(id)arg1;  
  544. - (void)copyFont:(id)arg1;  
  545. - (void)copy:(id)arg1;  
  546. - (void)complete:(id)arg1;  
  547. - (void)checkSpelling:(id)arg1;  
  548. - (void)changeSpelling:(id)arg1;  
  549. - (void)changeFont:(id)arg1;  
  550. - (void)changeDocumentBackgroundColor:(id)arg1;  
  551. - (void)changeColor:(id)arg1;  
  552. - (void)changeBaseWritingDirectionToRTL:(id)arg1;  
  553. - (void)changeBaseWritingDirectionToLTR:(id)arg1;  
  554. - (void)changeBaseWritingDirection:(id)arg1;  
  555. - (void)changeAttributes:(id)arg1;  
  556. - (void)centerSelectionInVisibleArea:(id)arg1;  
  557. - (void)capitalizeWord:(id)arg1;  
  558. - (void)alignRight:(id)arg1;  
  559. - (void)alignLeft:(id)arg1;  
  560. - (void)alignJustified:(id)arg1;  
  561. - (void)alignCenter:(id)arg1;  
  562. - (void)_performResponderOperation:(SEL)arg1 with:(id)arg2;  
  563. - (void)_simplifyMarkup:(id)arg1 endNode:(id)arg2;  
  564. - (BOOL)_selectionIsAll;  
  565. - (BOOL)_selectionIsCaret;  
  566. - (void)_replaceSelectionWithNode:(id)arg1 matchStyle:(BOOL)arg2;  
  567. - (void)_insertNewlineInQuotedContent;  
  568. - (id)_responderForResponderOperations;  
  569. - (BOOL)_continuousCheckingAllowed;  
  570. - (id)_frameViewAtWindowPoint:(struct CGPoint)arg1;  
  571. - (BOOL)_isLoading;  
  572. - (id)_focusedFrame;  
  573. - (struct CGRect)_convertRectFromRootView:(struct CGRect)arg1;  
  574. - (struct CGPoint)_convertPointFromRootView:(struct CGPoint)arg1;  
  575. - (void)_scheduleCompositingLayerSync;  
  576. - (BOOL)_syncCompositingChanges;  
  577. - (void)_setNeedsOneShotDrawingSynchronization:(BOOL)arg1;  
  578. - (BOOL)_needsOneShotDrawingSynchronization;  
  579. - (id)_selectedOrMainFrame;  
  580. - (struct Frame *)_mainCoreFrame;  
  581. - (int)_keyboardUIMode;  
  582. - (void)_retrieveKeyboardUIModeFromPreferences:(id)arg1;  
  583. - (void)_removeObjectForIdentifier:(unsigned long)arg1;  
  584. - (id)_objectForIdentifier:(unsigned long)arg1;  
  585. - (void)_addObject:(id)arg1 forIdentifier:(unsigned long)arg2;  
  586. - (BOOL)_becomingFirstResponderFromOutside;  
  587. - (id)_deviceOrientationProvider;  
  588. - (void)_setDeviceOrientationProvider:(id)arg1;  
  589. - (void)_resetAllGeolocationPermission;  
  590. - (void)_geolocationDidFailWithError:(id)arg1;  
  591. - (void)_geolocationDidChangePosition:(id)arg1;  
  592. - (id)_geolocationProvider;  
  593. - (void)_setGeolocationProvider:(id)arg1;  
  594. - (void)_notificationsDidClose:(id)arg1;  
  595. - (void)_notificationDidClick:(unsigned long long)arg1;  
  596. - (void)_notificationDidShow:(unsigned long long)arg1;  
  597. - (id)_notificationProvider;  
  598. - (void)_notificationControllerDestroyed;  
  599. - (void)_setNotificationProvider:(id)arg1;  
  600. - (struct OpaqueJSValue *)_computedStyleIncludingVisitedInfo:(struct OpaqueJSContext *)arg1 forElement:(struct OpaqueJSValue *)arg2;  
  601.   
  602. @end  

把它和Mac上的WebView聲明對比,可以發現有很多相同的函數。Mac的WebView繼承自NSView,就像UIWebView一樣是在Mac上直接給開發者使用的接口,而iOS的WebView繼承自WAKView,如同《WebCore::Widget淺探》裏所述,這個WAKView就是模仿NSView的,所以通過這樣的模仿和繼承,可以做較少改動令WebView在Mac和iOS上共用。以下幾個函數

[cpp] view plain copy
  1. findString(WAKView*, NSString*, unsigned int)  
  2. WebCore::Chrome::focusNSView(WAKView*)  
  3. WebCore::Widget::setPlatformWidget(WAKView*)  
  4. WebCore::Widget::Widget(WAKView*)  
  5. WebCore::FrameView::graphicsLayerForPlatformWidget(WAKView*)  
  6. WebCore::findViewInSubviews(WAKView*, WAKView*)  
  7. setDocumentViewOrigin(WAKScrollView*, WAKView*, CGPoint)  
  8. WebCore::Widget::init(WAKView*)  
  9. WebCore::Widget::addToSuperview(WAKView*)  
  10. WebCore::Chrome::focusNSView(WAKView*)  
  11. WebCore::Widget::setPlatformWidget(WAKView*)  
  12. WebCore::Widget::Widget(WAKView*)  
  13. WebCore::FrameView::graphicsLayerForPlatformWidget(WAKView*)  
中,特別是 focusNSView(WAKView*) 這個函數,函數名叫NSView,參數卻是WAKView,較顯然地支持這個“模仿”的判斷。

那爲什麼在iOS不公開WebView呢?我覺得是因爲Mac WebView的實現是單線程的,而iOS是多線程的,必然有很多的lock,而且線程間轉發消息也必然犧牲效率。如果直接公開WebView,讓開發者隨意用WebView的接口反而會招致抱怨,這些接口實現裏的鎖會令主線程卡頓,用戶體驗就因此降低了,還不如不公開——沒得用你也就沒得罵。

經過這樣的處理後被UIWebDocumentView封裝,WebView在iOS上就像是個數據流處理模塊,由UIWebDocumentView對其進行操作並接收事件回調通知。所以說,WebView以及UIWebDocumentView合起來就像是MVC中的Model,當Model發送變化,就通知UIWebTiledView重繪。更進一步講,UIWebDocumentView是WebView的Controller。

關於WebView暫不深入,後面再有一節來講。


UIWebDocumentView的聲明如下:(代碼好長,點此跳過

[cpp] view plain copy
  1. @interface UIWebDocumentView : UIWebTiledView <UIActionSheetDelegate, _UIRotatingActionSheetDelegate, UITextAutoscrolling, UIAutoscrollContainer, UIGestureRecognizerDelegate, UIKeyboardInput, UIKeyInput, UIModalViewDelegate, UITextInputTokenizer, _UIWebDoubleTapDelegate, UIWebFileUploadPanelDelegate>  
  2. {  
  3.     struct WKWindow *_wkWindow;  
  4.     WebView *_webView;  
  5.     WebViewReachabilityObserver *_reachabilityObserver;  
  6.     id m_parentTextView;  
  7.     id _delegate;       // 地址偏移28  
  8.     id _textSuggestionDelegate;  
  9.     struct CGRect _doubleTapRect;  
  10.     struct CGRect _mainDocumentDoubleTapRect;  
  11.     struct CGPoint _scrollPoint;  
  12.     struct CGPoint _doubleTapStartPosition;  
  13.     double _doubleTapStartTime;  
  14.     struct CGSize _pendingSize;  
  15.     int _orientation;  
  16.     DOMHTMLElement *_standaloneEditingElement;  
  17.     struct CGPoint _mouseDownPoint;  
  18.     double _mouseDownTime;  
  19.     UIAutoscroll *_autoscroll;  
  20.     struct __CFDictionary *_plugInViews;  
  21.     int m_selectionGranularity;  
  22.     CALayer *_contentLayersHostingLayer;  
  23.     CALayer *_flattenedRotatingContentLayer;  
  24.     NSMutableSet *_overflowScrollViewsPendingInsertion;  
  25.     NSMutableSet *_overflowScrollViewsPendingDeletion;  
  26.     NSMutableSet *_overflowScrollViews;  
  27.     NSArray *_additionalSubviews;  
  28.     UITextInputTraits *_traits;  
  29.     id <UITextInputDelegate> _inputDelegate;  
  30.     UITapGestureRecognizer *_singleTapGestureRecognizer;  
  31.     UITapGestureRecognizer *_doubleTapGestureRecognizer;  
  32.     UITapGestureRecognizer *_twoFingerDoubleTapGestureRecognizer;  
  33.     UILongPressGestureRecognizer *_highlightLongPressGestureRecognizer;  
  34.     UILongPressGestureRecognizer *_longPressGestureRecognizer;  
  35.     UIPanGestureRecognizer *_twoFingerPanGestureRecognizer;  
  36.     struct {  
  37.         NSTimer *timer;  
  38.         struct CGPoint location;  
  39.         char isBlocked;  
  40.         char isCancelled;  
  41.         char isOnWebThread;  
  42.         char isDisplayingHighlight;  
  43.         char attemptedClick;  
  44.         struct CGPoint lastPanTranslation;  
  45.         DOMNode *element;  
  46.         id delegate;  
  47.         UIWebRotatingSheet *interactionSheet;  
  48.         NSArray *elementActions;  
  49.         char allowsImageSheet;  
  50.         char allowsDataDetectorsSheet;  
  51.         char allowsLinkSheet;  
  52.         char acceptsFirstResponder;  
  53.         float documentScale;  
  54.     } _interaction;  
  55.     struct UIWebDocumentViewViewportConfiguration _defaultViewportConfigurations[5];  
  56.     struct UIWebDocumentViewViewportConfiguration _currentViewportConfiguration;  
  57.     struct CGSize _minimumSize;  
  58.     int _documentType;  
  59.     float _documentScale;  
  60.     float _previousDocumentScale;  
  61.     struct CGRect _documentBounds;  
  62.     struct CGSize _fixedLayoutOriginRoundingDelta;  
  63.     struct CGSize _fixedLayoutSizeRoundingDelta;  
  64.     unsigned int _customConfigurations;  
  65.     unsigned int _mouseDownCount;  
  66.     unsigned int _dataDetectorTypes;  
  67.     unsigned int _webCoreNeedsSetNeedsDisplay:1;  
  68.     unsigned int _webCoreNeedsDraw:1;  
  69.     unsigned int _ignoresFocusingMouse:1;  
  70.     unsigned int _ignoresKeyEvents:1;  
  71.     unsigned int _autoresizes:1;  
  72.     unsigned int _ignoresViewportOverflowWhenAutoresizing:1;  
  73.     unsigned int _updatingSize:1;  
  74.     unsigned int _scalesToFit:1;  
  75.     unsigned int _updatesScrollView:1;  
  76.     unsigned int _hasCustomScale:1;  
  77.     unsigned int _shouldRestoreScrollPosition:1;  
  78.     unsigned int _pageNeedsReset:1;  
  79.     unsigned int _hasScrollPoint:1;  
  80.     unsigned int _gesturesDisabled:1;  
  81.     unsigned int _doubleTapRectIsReplaced:1;  
  82.     unsigned int _standaloneEditableView:1;  
  83.     unsigned int _widgetEditingView:1;  
  84.     unsigned int _mouseDragged:1;  
  85.     unsigned int _mouseReentrancyGuard:1;  
  86.     unsigned int _isShowingFullScreenPlugIn:1;  
  87.     unsigned int _isSettingRedrawFrame:1;  
  88.     unsigned int _needsScrollNotifications:1;  
  89.     unsigned int _loadsSynchronously:1;  
  90.     unsigned int _mouseDown:1;  
  91.     unsigned int _usePreTimberlineTransparencyBehavior:1;  
  92.     unsigned int _geolocationDialogAllowed:1;  
  93.     unsigned int _usingMinimalTilesDuringLoading:1;  
  94.     unsigned int _sheetsCount:2;  
  95.     unsigned int _didFirstVisuallyNonEmptyLayout:1;  
  96.     unsigned int _loadInProgress:1;  
  97.     unsigned int _uiwdvIsResigningFirstResponder:1;  
  98.     unsigned int _classicViewportMode:1;  
  99.     unsigned int _sizeUpdatesSuspended:1;  
  100.     unsigned int _sizeUpdateOccurredWhileSuspended:1;  
  101.     unsigned int _shouldOnlyRecognizeGesturesOnActiveElements:1;  
  102.     unsigned int _shouldIgnoreCustomViewport:1;  
  103.     unsigned int _ignoresFocusEventFromFirstResponderChange:1;  
  104.     unsigned int _shouldCloseWebViewAtDealloc:1;  
  105.     unsigned int _shouldRemoveUserStyleSheet:1;  
  106.     unsigned int _hasDrawnTiles:1;  
  107.     unsigned int _showingTextStyleOptions:1;  
  108.     unsigned int _subviewCachesNeedUpdate:1;  
  109.     unsigned int _avoidFixedPositionUpdateViaDidScroll:1;  
  110.     unsigned int _inspectorSearchingForNode:1;  
  111.     unsigned int _previousScrollWasScrollToTop:1;  
  112.     unsigned int _skipResettingNeedsScrollNotifications:1;  
  113.     WebThreadSafeUndoManager *_undoManager;  
  114.     UIWebSelectionAssistant *_webSelectionAssistant;  
  115.     UITextInteractionAssistant *_textSelectionAssistant;  
  116.     UITextChecker *_textChecker;  
  117.     struct UIEdgeInsets _caretInsets;  
  118.     UIWebFileUploadPanel *_fileUploadPanel;  
  119.     int _selectionAffinity;  
  120.     DOMElement *_dictationResultPlaceholder;  
  121.     id _dictationResultPlaceholderRemovalObserver;  
  122.     DOMRange *_rangeToRestoreAfterDictation;  
  123.     _UITextServiceSession *_definitionSession;  
  124.     _UITextServiceSession *_learnSession;  
  125.     BOOL _suppressesIncrementalRendering;  
  126. }  
  127.   
  128. + (id)standardTextViewPreferences;  
  129. + (BOOL)hasLandscapeOrientation;  
  130. + (void)initialize;  
  131. + (double)getTimestamp;  
  132. + (Class)layerClass;  
  133. + (id)_sharedHighlightView;  
  134. + (id)_createDefaultHighlightView;  
  135. @property(nonatomic) BOOL suppressesIncrementalRendering; // @synthesize suppressesIncrementalRendering=_suppressesIncrementalRendering;  
  136. @property(retain, nonatomic) DOMRange *rangeToRestoreAfterDictation; // @synthesize rangeToRestoreAfterDictation=_rangeToRestoreAfterDictation;  
  137. - (void)willZoomToLocation:(struct CGPoint)arg1 atScale:(float)arg2 forDuration:(double)arg3;  
  138. - (BOOL)shouldSelectionAssistantReceiveDoubleTapAtPoint:(struct CGPoint)arg1 forScale:(float)arg2;  
  139. - (void)willZoomToMinimumScale;  
  140. - (BOOL)considerHeightForDoubleTap;  
  141. - (CDStruct_869f9c67)doubleTapScalesForSize:(struct CGSize)arg1;  
  142. - (struct CGRect)rectOfInterestForPoint:(struct CGPoint)arg1;  
  143. - (float)minimumScaleForSize:(struct CGSize)arg1;  
  144. - (struct CGRect)visibleContentRect;  
  145. - (float)currentDocumentScale;  
  146. - (float)zoomedDocumentScale;  
  147. - (id)contentView;  
  148. - (id)enclosingScrollView;  
  149. - (BOOL)_isInspectorSearchingForNode;  
  150. - (BOOL)_shouldResetForNewPage;  
  151. - (int)documentType;  
  152. - (id)_documentUrl;  
  153. - (id)selectionRectsForRange:(id)arg1;  
  154. @property(nonatomic) int selectionGranularity;  
  155. @property(nonatomic) int selectionAffinity;  
  156. - (void)setBaseWritingDirection:(int)arg1 forRange:(id)arg2;  
  157. - (int)baseWritingDirectionForPosition:(id)arg1 inDirection:(int)arg2;  
  158. - (id)characterRangeByExtendingPosition:(id)arg1 inDirection:(int)arg2;  
  159. - (id)positionWithinRange:(id)arg1 farthestInDirection:(int)arg2;  
  160. - (id)characterRangeAtPoint:(struct CGPoint)arg1;  
  161. - (id)closestPositionToPoint:(struct CGPoint)arg1 withinRange:(id)arg2;  
  162. - (id)closestPositionToPoint:(struct CGPoint)arg1;  
  163. @property(copy, nonatomic) NSDictionary *markedTextStyle;  
  164. - (struct CGRect)caretRectForPosition:(id)arg1;  
  165. @property(nonatomic) id <UITextInputDelegate> inputDelegate;  
  166. @property(readonly, nonatomic) id <UITextInputTokenizer> tokenizer;  
  167. - (struct CGRect)_lastRectForRange:(id)arg1;  
  168. - (struct CGRect)firstRectForRange:(id)arg1;  
  169. - (id)rangeEnclosingPosition:(id)arg1 withGranularity:(int)arg2 inDirection:(int)arg3;  
  170. - (void)_scrollRectToVisible:(struct CGRect)arg1 animated:(BOOL)arg2;  
  171. - (BOOL)isPosition:(id)arg1 withinTextUnit:(int)arg2 inDirection:(int)arg3;  
  172. - (id)positionFromPosition:(id)arg1 toBoundary:(int)arg2 inDirection:(int)arg3;  
  173. - (BOOL)isPosition:(id)arg1 atBoundary:(int)arg2 inDirection:(int)arg3;  
  174. - (id)positionFromPosition:(id)arg1 inDirection:(int)arg2 offset:(int)arg3;  
  175. - (id)_positionFromPosition:(id)arg1 inDirection:(int)arg2 offset:(int)arg3 withAffinityDownstream:(BOOL)arg4;  
  176. - (id)positionFromPosition:(id)arg1 offset:(int)arg2;  
  177. - (int)offsetFromPosition:(id)arg1 toPosition:(id)arg2;  
  178. - (int)comparePosition:(id)arg1 toPosition:(id)arg2;  
  179. - (void)replaceRange:(id)arg1 withText:(id)arg2;  
  180. - (id)rangeOfEnclosingWord:(id)arg1;  
  181. - (id)textRangeFromPosition:(id)arg1 toPosition:(id)arg2;  
  182. - (id)textInRange:(id)arg1;  
  183. @property(readonly, nonatomic) UITextPosition *endOfDocument;  
  184. @property(readonly, nonatomic) UITextPosition *beginningOfDocument;  
  185. - (void)unmarkText;  
  186. @property(readonly, nonatomic) UITextRange *markedTextRange;  
  187. - (void)setSelectedTextRange:(id)arg1 withAffinityDownstream:(BOOL)arg2;  
  188. @property(copy) UITextRange *selectedTextRange;  
  189. - (BOOL)hasText;  
  190. - (id)_textSelectingContainer;  
  191. - (BOOL)hasSimpleTextOnlyStructure;  
  192. - (BOOL)containsOnlySelectableElements;  
  193. - (void)setTileUpdatesDisabled:(BOOL)arg1;  
  194. - (void)_restoreFlattenedContentLayers;  
  195. - (void)_flattenAndSwapContentLayersInRect:(struct CGRect)arg1;  
  196. - (void *)_createIOSurfaceFromRect:(struct CGRect)arg1;  
  197. - (BOOL)_shouldFlattenContentLayersForRect:(struct CGRect)arg1;  
  198. - (unsigned int)_contentSizeInExposedRect:(struct CGRect)arg1 topLayer:(id)arg2 visibleLayerCount:(int *)arg3;  
  199. - (BOOL)_shouldUseInitialScale;  
  200. - (float)maximumDoubleTapScale;  
  201. - (void)didEndZoom;  
  202. - (void)didZoom;  
  203. - (void)willStartZoom;  
  204. - (void)scrollViewWasRemoved;  
  205. - (void)didEndScroll;  
  206. - (void)_updateFixedPositioningObjectsLayoutAfterVisibleGeometryChange;  
  207. - (void)_updateFixedPositioningObjectsLayoutAfterScroll;  
  208. - (void)willStartScrollToTop;  
  209. - (void)willStartScroll;  
  210. - (void)useSelectionAssistantWithMode:(int)arg1;  
  211. - (void)setBecomesEditableWithGestures:(BOOL)arg1;  
  212. - (BOOL)becomesEditableWithGestures;  
  213. - (BOOL)playsNicelyWithGestures;  
  214. - (struct CGRect)autoscrollContentFrame;  
  215. - (struct CGRect)autoscrollDragFrame;  
  216. - (struct CGRect)visibleContentFrame;  
  217. - (struct CGRect)visibleFrame;  
  218. - (BOOL)canPerformAction:(SEL)arg1 withSender:(id)arg2;  
  219. - (BOOL)inPopover;  
  220. - (BOOL)isCaretInEmptyParagraph;  
  221. - (id)webSelectionAssistant;  
  222. - (void)makeTextWritingDirectionLeftToRight:(id)arg1;  
  223. - (void)makeTextWritingDirectionRightToLeft:(id)arg1;  
  224. - (void)_promptForReplace:(id)arg1;  
  225. - (void)replace:(id)arg1;  
  226. - (void)selectAll:(id)arg1;  
  227. - (void)select:(id)arg1;  
  228. - (void)paste:(id)arg1;  
  229. - (void)_addShortcut:(id)arg1;  
  230. - (void)_define:(id)arg1;  
  231. - (struct CGRect)_shortcutPresentationRect;  
  232. - (void)_showTextStyleOptions:(id)arg1;  
  233. - (void)toggleUnderline:(id)arg1;  
  234. - (void)toggleItalics:(id)arg1;  
  235. - (void)toggleBoldface:(id)arg1;  
  236. - (void)copy:(id)arg1;  
  237. - (void)cut:(id)arg1;  
  238. - (struct CGRect)_selectionClipRect;  
  239. - (void)updateSelection;  
  240. - (void)endSelectionChange;  
  241. - (void)beginSelectionChange;  
  242. - (BOOL)isEditing;  
  243. - (BOOL)isEditable;  
  244. @property(readonly, nonatomic) UITextInteractionAssistant *interactionAssistant;  
  245. - (id)selectionView;  
  246. - (void)takeTraitsFrom:(id)arg1;  
  247. - (id)methodSignatureForSelector:(SEL)arg1;  
  248. - (void)forwardInvocation:(id)arg1;  
  249. - (id)textInputTraits;  
  250. - (void)webView:(id)arg1 willAddPlugInView:(id)arg2;  
  251. - (BOOL)hasPlugInSubviews;  
  252. - (BOOL)isShowingFullScreenPlugInUI;  
  253. - (void)didRemovePlugInView:(id)arg1;  
  254. - (void)webView:(id)arg1 didHideFullScreenForPlugInView:(id)arg2;  
  255. - (void)webView:(id)arg1 willShowFullScreenForPlugInView:(id)arg2;  
  256. - (id)webView:(id)arg1 plugInViewWithArguments:(id)arg2 fromPlugInPackage:(id)arg3;  
  257. - (void)setPaused:(BOOL)arg1 withEvents:(BOOL)arg2;  
  258. - (void)setPaused:(BOOL)arg1;  
  259. - (void)handleKeyWebEvent:(id)arg1;  
  260. - (BOOL)requiresKeyEvents;  
  261. - (void)setBottomBufferHeight:(float)arg1;  
  262. - (id)automaticallySelectedOverlay;  
  263. - (void)keyboardInputChangedSelection:(id)arg1;  
  264. - (BOOL)keyboardInputChanged:(id)arg1;  
  265. - (BOOL)keyboardInputShouldDelete:(id)arg1;  
  266. - (BOOL)keyboardInput:(id)arg1 shouldInsertText:(id)arg2 isMarkedText:(BOOL)arg3;  
  267. - (BOOL)keyboardInput:(id)arg1 shouldReplaceTextInRange:(struct _NSRange)arg2 replacementText:(id)arg3;  
  268. - (id)implementationWebView;  
  269. - (struct CGRect)convertCaretRect:(struct CGRect)arg1;  
  270. - (void)setCaretChangeListener:(id)arg1;  
  271. - (BOOL)hasContent;  
  272. - (id)text;  
  273. - (void)setText:(id)arg1;  
  274. - (void)selectAll;  
  275. - (void)moveForward:(unsigned int)arg1;  
  276. - (void)moveBackward:(unsigned int)arg1;  
  277. - (BOOL)selectionAtWordStart;  
  278. - (BOOL)selectionAtDocumentStart;  
  279. - (BOOL)hasSelection;  
  280. - (void)extendCurrentSelection:(int)arg1;  
  281. - (id)rangeByExtendingCurrentSelection:(int)arg1;  
  282. - (id)rangeByMovingCurrentSelection:(int)arg1;  
  283. - (void)setSelectedDOMRange:(id)arg1 affinityDownstream:(BOOL)arg2;  
  284. - (id)selectedDOMRange;  
  285. - (struct _NSRange)selectionRange;  
  286. - (struct _NSRange)_markedTextNSRange;  
  287. - (void)replaceSelectionWithWebArchive:(id)arg1 selectReplacement:(BOOL)arg2 smartReplace:(BOOL)arg3;  
  288. - (int)wordOffsetInRange:(id)arg1;  
  289. - (void)expandSelectionToStartOfWordContainingCaretSelection;  
  290. - (id)wordContainingCaretSelection;  
  291. - (id)nextUnperturbedDictationResultBoundaryFromPosition:(id)arg1;  
  292. - (id)previousUnperturbedDictationResultBoundaryFromPosition:(id)arg1;  
  293. - (id)wordRangeContainingCaretSelection;  
  294. - (struct CGRect)rectContainingCaretSelection;  
  295. - (id)rectsForNSRange:(struct _NSRange)arg1;  
  296. - (struct CGRect)rectForNSRange:(struct _NSRange)arg1;  
  297. - (id)textColorForCaretSelection;  
  298. - (id)fontForCaretSelection;  
  299. - (unsigned short)characterAfterCaretSelection;  
  300. - (unsigned short)characterBeforeCaretSelection;  
  301. - (unsigned short)characterInRelationToCaretSelection:(int)arg1;  
  302. - (id)markedText;  
  303. - (void)confirmMarkedText:(id)arg1;  
  304. - (void)setMarkedText:(id)arg1 selectedRange:(struct _NSRange)arg2;  
  305. - (void)setMarkedText:(id)arg1;  
  306. - (void)replaceCurrentWordWithText:(id)arg1;  
  307. - (void)replaceRangeWithText:(struct _NSRange)arg1 replacementText:(id)arg2;  
  308. - (void)replaceRangeWithTextWithoutClosingTyping:(id)arg1 replacementText:(id)arg2;  
  309. - (id)dictationInterpretations;  
  310. - (void)removeDictationResultPlaceholder:(id)arg1 willInsertResult:(BOOL)arg2;  
  311. - (void)_finishedUsingDictationPlaceholder;  
  312. - (struct CGRect)frameForDictationResultPlaceholder:(id)arg1;  
  313. - (id)insertDictationResultPlaceholder;  
  314. - (BOOL)_dictationPlaceholderHasBeenRemoved;  
  315. - (BOOL)hasRangedSelection;  
  316. - (id)dictationResultMetadataForRange:(id)arg1;  
  317. - (id)metadataDictionariesForDictationResults;  
  318. - (void)insertDictationResult:(id)arg1 withCorrectionIdentifier:(id)arg2;  
  319. - (BOOL)isEditingSingleLineElement;  
  320. - (void)insertText:(id)arg1;  
  321. - (void)deleteBackward;  
  322. - (void)disableClearsOnInsertion;  
  323. - (void)deleteFromInput;  
  324. - (void)addInputString:(id)arg1;  
  325. - (void)addInputString:(id)arg1 fromVariantKey:(BOOL)arg2;  
  326. - (id)delegate;  
  327. - (void)setContinuousSpellCheckingEnabled:(BOOL)arg1;  
  328. - (void)_setParentTextView:(id)arg1;  
  329. - (id)_parentTextView;  
  330. - (id)undoManager;  
  331. - (id)undoManagerForWebView:(id)arg1;  
  332. - (void)_undoManagerDidRedo:(id)arg1;  
  333. - (void)_undoManagerDidUndo:(id)arg1;  
  334. - (void)setInteractionAssistantGestureRecognizers;  
  335. - (void)ensureSelection;  
  336. - (BOOL)clearWKFirstResponder;  
  337. - (BOOL)makeWKFirstResponder;  
  338. - (id)_responderForBecomeFirstResponder;  
  339. - (BOOL)resignFirstResponder;  
  340. - (void)deferredBecomeFirstResponder;  
  341. - (BOOL)becomeFirstResponder;  
  342. - (BOOL)canResignFirstResponder;  
  343. - (BOOL)canBecomeFirstResponder;  
  344. - (BOOL)updateKeyboardStateOnResponderChanges;  
  345. - (BOOL)isWidgetEditingView;  
  346. - (void)setIsWidgetEditingView:(BOOL)arg1;  
  347. - (id)standaloneEditingElement;  
  348. - (void)setStandaloneEditingElement:(id)arg1;  
  349. - (BOOL)isStandaloneEditableView;  
  350. - (void)setIsStandaloneEditableView:(BOOL)arg1;  
  351. - (id)textFormElement;  
  352. - (id)formElement;  
  353. - (void)_clearAllConsoleMessages;  
  354. - (void)_resetFormDataForFrame:(id)arg1;  
  355. - (void)assistFormNode:(id)arg1;  
  356. - (BOOL)doubleTapRectIsReplaced;  
  357. - (struct CGRect)doubleTapRect;  
  358. - (void)_handleTwoFingerDoubleTapAtLocation:(struct CGPoint)arg1;  
  359. - (void)_handleDoubleTapAtLocation:(struct CGPoint)arg1;  
  360. - (void)_handleDoubleTapAtPoint:(struct CGPoint)arg1 inWebHTMLView:(id)arg2 outRenderRect:(struct CGRect *)arg3;  
  361. @property(nonatomic, getter=isDoubleTapEnabled) BOOL doubleTapEnabled;  
  362. @property(nonatomic) BOOL mediaPlaybackAllowsAirPlay;  
  363. @property(nonatomic) BOOL shouldOnlyRecognizeGesturesOnActiveElements;  
  364. - (void)sendOrientationEventForOrientation:(int)arg1;  
  365. - (void)didRotateInteractionSheet;  
  366. - (void)willRotateInteractionSheet;  
  367. - (void)updateInteractionElements;  
  368. - (void)redrawScaledDocument;  
  369. - (void)_reshapePlugInViews;  
  370. - (id)checkSpellingOfString:(id)arg1;  
  371. - (void)_renderUnbufferedInContext:(struct CGContext *)arg1;  
  372. - (void)webViewDidDrawTiles:(id)arg1;  
  373. - (id)subviews;  
  374. - (BOOL)_shouldUpdateSubviewCachesForPlugins;  
  375. - (void)_updateSubviewCaches;  
  376. - (BOOL)_hasSubviewContainingWebContent:(id)arg1;  
  377. - (void)_overflowScrollView:(id)arg1 didEndScrollingForNode:(id)arg2;  
  378. - (void)_overflowScrollView:(id)arg1 scrollOffsetChangedForNode:(id)arg2 whileScrolling:(BOOL)arg3;  
  379. - (void)_overflowScrollView:(id)arg1 willStartScrollingForNode:(id)arg2;  
  380. - (void)webView:(id)arg1 willRemoveScrollingLayer:(id)arg2 withContentsLayer:(id)arg3 forNode:(id)arg4;  
  381. - (void)webView:(id)arg1 didCreateOrUpdateScrollingLayer:(id)arg2 withContentsLayer:(id)arg3 scrollSize:(id)arg4 forNode:(id)arg5 allowHorizontalScrollbar:(BOOL)arg6 allowVerticalScrollbar:(BOOL)arg7;  
  382. - (void)webViewDidCommitCompositingLayerChanges:(id)arg1;  
  383. - (void)_removeAdditionalSubview:(id)arg1;  
  384. - (void)_addAdditionalSubview:(id)arg1;  
  385. - (void)_setSubviewCachesNeedUpdate:(BOOL)arg1;  
  386. - (void)_noteOverflowScrollViewPendingDeletion:(id)arg1;  
  387. - (void)_noteOverflowScrollViewPendingInsertion:(id)arg1;  
  388. - (void)_webthread_webView:(id)arg1 attachRootLayer:(id)arg2;  
  389. - (void)revealedSelectionByScrollingWebFrame:(id)arg1;  
  390. - (BOOL)isUnperturbedDictationResultMarker:(id)arg1;  
  391. - (int)getPasteboardChangeCount;  
  392. - (id)readDataFromPasteboard:(id)arg1 withIndex:(int)arg2;  
  393. - (id)supportedPasteboardTypesForCurrentSelection;  
  394. - (id)_supportedPasteboardTypesForCurrentSelection;  
  395. - (BOOL)performsTwoStepPaste:(id)arg1;  
  396. - (BOOL)fragmentContainsRichContent:(id)arg1;  
  397. - (BOOL)hasRichlyEditableSelection;  
  398. - (BOOL)isInsideRichlyEditableTextWidget;  
  399. - (int)getPasteboardItemsCount;  
  400. - (void)writeDataToPasteboard:(id)arg1;  
  401. - (void)_updateFixedPositionContent;  
  402. - (struct CGRect)_adjustedLayoutRectForFixedPositionObjects;  
  403. - (void)_updateFixedPositionedObjectsLayoutRectUsingWebThread:(BOOL)arg1 synchronize:(BOOL)arg2;  
  404. - (struct CGRect)_layoutRectForFixedPositionObjects;  
  405. - (struct CGRect)_documentViewVisibleRect;  
  406. - (void)_notifyContentHostingLayersOfScaleChange;  
  407. - (void)_didMoveFromWindow:(id)arg1 toWindow:(id)arg2;  
  408. - (void)_notifyPlugInViewsOfScaleChange;  
  409. - (void)_notifyPlugInViewsOfDidZoom;  
  410. - (void)_notifyPlugInViewsOfDidEndZooming;  
  411. - (void)_notifyPlugInViewsOfWillBeginZooming;  
  412. - (BOOL)_isSubviewOfPlugInView:(id)arg1;  
  413. - (void)_didScroll;  
  414. - (void)_cancelLongPressGestureRecognizer;  
  415. - (void)setTilingArea:(int)arg1;  
  416. - (void)setIgnoresKeyEvents:(BOOL)arg1;  
  417. - (void)setIgnoresFocusingMouse:(BOOL)arg1;  
  418. - (BOOL)cancelTouchTracking;  
  419. - (BOOL)cancelMouseTracking;  
  420. - (struct CGImage *)newSnapshotWithRect:(struct CGRect)arg1;  
  421. - (struct CGImage *)createSnapshotWithRect:(struct CGRect)arg1;  
  422. - (void)setOpaque:(BOOL)arg1;  
  423. - (void)setDrawsBackground:(BOOL)arg1;  
  424. - (void)setSmoothsFonts:(BOOL)arg1;  
  425. - (void)layoutSubviews;  
  426. - (void)forceLayout;  
  427. - (void)_showPendingContentLayers;  
  428. - (BOOL)webView:(id)arg1 shouldScrollToPoint:(struct CGPoint)arg2 forFrame:(id)arg3;  
  429. - (void)webView:(id)arg1 restoreStateFromHistoryItem:(id)arg2 forFrame:(id)arg3 force:(BOOL)arg4;  
  430. - (void)webView:(id)arg1 saveStateToHistoryItem:(id)arg2 forFrame:(id)arg3;  
  431. - (void)saveStateToCurrentHistoryItem;  
  432. - (void)_saveStateToHistoryItem:(id)arg1;  
  433. - (void)_resetForNewPage;  
  434. - (void)_restoreScrollPointForce:(BOOL)arg1;  
  435. - (BOOL)updatesScrollView;  
  436. - (void)setUpdatesScrollView:(BOOL)arg1;  
  437. - (void)fileUploadPanelDidDismiss:(id)arg1;  
  438. - (void)setAllowsUserScaling:(BOOL)arg1 forDocumentTypes:(int)arg2;  
  439. - (void)setMaximumScale:(float)arg1 forDocumentTypes:(int)arg2;  
  440. - (void)setMinimumScale:(float)arg1 forDocumentTypes:(int)arg2;  
  441. - (void)setInitialScale:(float)arg1 forDocumentTypes:(int)arg2;  
  442. - (void)setViewportSize:(struct CGSize)arg1 forDocumentTypes:(int)arg2;  
  443. - (void)setMinimumSize:(struct CGSize)arg1 updateCurrentViewportConfigurationSize:(BOOL)arg2;  
  444. - (void)setMinimumSize:(struct CGSize)arg1;  
  445. - (void)setIgnoresViewportOverflowWhenAutoresizing:(BOOL)arg1;  
  446. - (void)setAutoresizes:(BOOL)arg1;  
  447. - (struct CGRect)documentBounds;  
  448. - (void)_WAKViewSizeDidChange:(id)arg1;  
  449. - (void)webView:(id)arg1 didReceiveDocTypeForFrame:(id)arg2;  
  450. - (void)webView:(id)arg1 didCommitLoadForFrame:(id)arg2;  
  451. - (void)webView:(id)arg1 didChangeLocationWithinPageForFrame:(id)arg2;  
  452. - (void)webView:(id)arg1 didFailLoadWithError:(id)arg2 forFrame:(id)arg3;  
  453. - (void)webView:(id)arg1 didFirstVisuallyNonEmptyLayoutInFrame:(id)arg2;  
  454. - (void)webViewDidRestoreFromPageCache:(id)arg1;  
  455. - (void)webView:(id)arg1 runOpenPanelForFileButtonWithResultListener:(id)arg2 allowMultipleFiles:(BOOL)arg3 acceptMIMETypes:(id)arg4;  
  456. - (void)webViewDidEndOverflowScroll:(id)arg1;  
  457. - (void)webViewDidStartOverflowScroll:(id)arg1;  
  458. - (void)_editableSelectionLayoutChangedByScrolling:(BOOL)arg1;  
  459. - (void)_selectionLayoutChangedByScrolling:(BOOL)arg1;  
  460. - (void)webThreadWebViewDidLayout:(id)arg1 byScrolling:(BOOL)arg2;  
  461. - (void)webView:(id)arg1 didFinishLoadForFrame:(id)arg2;  
  462. - (void)resetTilingAfterLoadComplete;  
  463. - (void)sendScrollEventIfNecessaryWasUserScroll:(BOOL)arg1;  
  464. - (void)sendScrollEventIfNecessary;  
  465. - (BOOL)needsScrollNotifications;  
  466. - (void)webView:(id)arg1 needsScrollNotifications:(id)arg2 forFrame:(id)arg3;  
  467. - (BOOL)isClassicViewportMode;  
  468. - (void)webView:(id)arg1 didReceiveViewportArguments:(id)arg2 forFrame:(id)arg3;  
  469. - (unsigned int)_applyViewportArguments:(id)arg1;  
  470. @property(nonatomic) BOOL shouldIgnoreCustomViewport;  
  471. - (void)_clearDoubleTapRect;  
  472. - (void)_updateSize;  
  473. @property(nonatomic) BOOL sizeUpdatesSuspended;  
  474. - (void)_setDocumentType:(int)arg1;  
  475. - (void)_setDocumentType:(int)arg1 overrideCustomConfigurations:(BOOL)arg2 viewportArguments:(id)arg3;  
  476. - (struct CGRect)convertRect:(struct CGRect)arg1 fromFrame:(id)arg2;  
  477. - (struct CGRect)convertRect:(struct CGRect)arg1 toFrame:(id)arg2;  
  478. - (struct CGPoint)convertPoint:(struct CGPoint)arg1 fromFrame:(id)arg2;  
  479. - (struct CGPoint)convertPoint:(struct CGPoint)arg1 toFrame:(id)arg2;  
  480. - (void)viewportConfigurationsDidChange:(unsigned int)arg1;  
  481. - (void)_updateScrollViewBoundaryZoomScales;  
  482. - (float)_zoomedDocumentScale;  
  483. - (float)minimumScale;  
  484. - (float)maximumScale;  
  485. - (float)initialScale;  
  486. - (float)minimumScaleForMinimumSize:(struct CGSize)arg1;  
  487. - (float)viewportHeight;  
  488. - (float)viewportWidth;  
  489. - (float)_documentScale;  
  490. - (void)_setDocumentScale:(float)arg1;  
  491. - (float)integralScaleForScale:(float)arg1;  
  492. - (float)integralScaleForScale:(float)arg1 keepingPointFixed:(struct CGPoint *)arg2;  
  493. - (void)setFrame:(struct CGRect)arg1;  
  494. - (void)setUsePreTimberlineTransparencyBehavior;  
  495. - (unsigned int)dataDetectorTypes;  
  496. - (void)setDataDetectorTypes:(unsigned int)arg1;  
  497. - (unsigned int)effectiveDataDetectorTypes;  
  498. - (BOOL)_dataDetectionIsActivated;  
  499. - (BOOL)detectsPhoneNumbers;  
  500. - (void)setDetectsPhoneNumbers:(BOOL)arg1;  
  501. - (void)setUserStyleSheet:(id)arg1;  
  502. - (id)_focusedOrMainFrame;  
  503. - (id)_groupName;  
  504. - (id)webView;  
  505. - (BOOL)loadsSynchronously;  
  506. - (void)setLoadsSynchronously:(BOOL)arg1;  
  507. - (void)loadData:(id)arg1 MIMEType:(id)arg2 textEncodingName:(id)arg3 baseURL:(id)arg4;  
  508. - (void)loadHTMLString:(id)arg1 baseURL:(id)arg2;  
  509. - (void)loadRequest:(id)arg1;  
  510. - (void)_cleanUpFrameStateAndLoad:(id)arg1;  
  511. - (void)_runLoadBlock:(id)arg1;  
  512. - (void)setDelegate:(id)arg1;  
  513. - (void)stopLoading:(id)arg1;  
  514. - (void)didMoveToSuperview;  
  515. - (void)willMoveToSuperview:(id)arg1;  
  516. - (void)_reachabilityManagerNotifiedIsReachable:(BOOL)arg1;  
  517. - (BOOL)hasDrawnTiles;  
  518. - (BOOL)didFirstVisuallyNonEmptyLayout;  
  519. - (void)dealloc;  
  520. - (void)setTypingAttributes:(id)arg1;  
  521. - (id)typingAttributes;  
  522. - (void)_setTextColor:(id)arg1;  
  523. - (void)_setFont:(id)arg1;  
  524. - (void)_dismissViewControllerAnimated:(BOOL)arg1 completion:(id)arg2;  
  525. - (BOOL)_presentViewController:(id)arg1 animated:(BOOL)arg2 completion:(id)arg3;  
  526. - (void)_removeShortcutController:(BOOL)arg1;  
  527. - (void)_removeDefinitionController:(BOOL)arg1;  
  528. - (void)_inspectorDidStopSearchingForNode:(id)arg1;  
  529. - (void)_inspectorDidStartSearchingForNode:(id)arg1;  
  530. - (void)_resetShowingTextStyle:(id)arg1;  
  531. - (void)enableReachability;  
  532. - (id)initWithWebView:(id)arg1 frame:(struct CGRect)arg2;  
  533. - (id)initWithFrame:(struct CGRect)arg1;  
  534. - (id)initSimpleHTMLDocumentWithStyle:(id)arg1 frame:(struct CGRect)arg2 preferences:(id)arg3 groupName:(id)arg4;  
  535. - (struct CGRect)webViewFrameForUIFrame:(struct CGRect)arg1;  
  536. - (void)_restoreViewportSettingsWithSize:(struct CGSize)arg1;  
  537. - (id)scriptingInfoWithChildren;  
  538. - (id)_scriptingInfoForForm:(id)arg1;  
  539. - (id)_scriptingInfoForLink:(id)arg1;  
  540. @property(getter=_acceptsFirstResponder, setter=_setAcceptsFirstResponder:) BOOL _acceptsFirstResponder;  
  541. - (id)_doubleTapGestureRecognizer;  
  542. - (id)superviewForSheet;  
  543. - (struct CGPoint)interactionLocation;  
  544. - (id)interactionElement;  
  545. - (void)setAllowsLinkSheet:(BOOL)arg1;  
  546. - (void)setAllowsDataDetectorsSheet:(BOOL)arg1;  
  547. - (void)setAllowsImageSheet:(BOOL)arg1;  
  548. - (id)interactionDelegate;  
  549. - (void)setInteractionDelegate:(id)arg1;  
  550. - (BOOL)supportsTwoFingerScrollingAtTouchLocation:(struct CGPoint)arg1 andLocation:(struct CGPoint)arg2;  
  551. - (void)sendScrollWheelEvents;  
  552. - (void)_cleanupSheet;  
  553. - (void)actionSheet:(id)arg1 didDismissWithButtonIndex:(int)arg2;  
  554. - (void)actionSheet:(id)arg1 clickedButtonAtIndex:(int)arg2;  
  555. - (id)_targetURL;  
  556. - (void)cancelInteractionWithImmediateDisplay:(BOOL)arg1;  
  557. - (void)deferInteraction;  
  558. - (void)cancelInteraction;  
  559. - (void)completeInteraction;  
  560. - (void)resetInteraction;  
  561. - (void)highlightApproximateNodeAndDisplayInfoSheet;  
  562. - (void)hideTapHighlight;  
  563. - (void)highlightApproximateNodeInverted:(BOOL)arg1;  
  564. - (id)deepestNodeAtViewportLocation:(struct CGPoint)arg1;  
  565. - (id)approximateNodeAtViewportLocation:(struct CGPoint *)arg1;  
  566. - (void)webViewDidPreventDefaultForEvent:(id)arg1;  
  567. - (void)webView:(id)arg1 didObserveDeferredContentChange:(int)arg2 forFrame:(id)arg3;  
  568. - (void)attemptClick:(id)arg1;  
  569. - (void)_sendMouseMoveAndAttemptClick:(id)arg1;  
  570. - (void)performClick:(id)arg1;  
  571. - (void)_twoFingerPanRecognized:(id)arg1;  
  572. - (void)_longPressRecognized:(id)arg1;  
  573. - (void)_highlightLongPressRecognized:(id)arg1;  
  574. - (BOOL)gestureRecognizerShouldBegin:(id)arg1;  
  575. - (SEL)_actionForLongPressOnElement:(id)arg1;  
  576. - (void)_twoFingerDoubleTapRecognized:(id)arg1;  
  577. - (void)_doubleTapRecognized:(id)arg1;  
  578. - (void)_singleTapRecognized:(id)arg1;  
  579. - (BOOL)gestureRecognizer:(id)arg1 shouldRecognizeSimultaneouslyWithGestureRecognizer:(id)arg2;  
  580. - (BOOL)gestureRecognizer:(id)arg1 canBePreventedByGestureRecognizer:(id)arg2;  
  581. - (BOOL)gestureRecognizer:(id)arg1 canPreventGestureRecognizer:(id)arg2;  
  582. - (BOOL)gestureRecognizer:(id)arg1 shouldReceiveTouch:(id)arg2;  
  583. - (void)installGestureRecognizers;  
  584. - (BOOL)willInteractWithLocation:(struct CGPoint)arg1;  
  585. - (BOOL)isInInteraction;  
  586. - (BOOL)startActionSheet;  
  587. - (void)validateInteractionWithLocation:(struct CGPoint)arg1;  
  588. - (void)tapInteractionWithLocation:(struct CGPoint)arg1;  
  589. - (void)continueInteractionWithLocation:(struct CGPoint)arg1;  
  590. - (void)startInteractionWithLocation:(struct CGPoint)arg1;  
  591. - (void)_resetInteractionWithLocation:(struct CGPoint)arg1;  
  592. - (void)performInteractionSelector:(SEL)arg1 afterDelay:(double)arg2;  
  593. - (void)clearInteractionTimer;  
  594. - (struct CGRect)presentationRectInHostViewForSheet:(id)arg1;  
  595. - (struct CGRect)initialPresentationRectInHostViewForSheet:(id)arg1;  
  596. - (id)hostViewForSheet:(id)arg1;  
  597. - (struct CGRect)_presentationRectForSheetGivenPoint:(struct CGPoint)arg1 inHostView:(id)arg2;  
  598. - (void)_showDataDetectorsSheet;  
  599. - (void)actionDidFinish;  
  600. - (void)_showLinkSheet;  
  601. - (void)_showImageSheet;  
  602. - (void)_createSheetWithElementActions:(id)arg1 showLinkTitle:(BOOL)arg2;  
  603. - (void)drawPage:(unsigned int)arg1 withPaginationInfo:(id)arg2;  
  604. - (void)_drawPDFPagesForPage:(unsigned int)arg1 withPaginationInfo:(id)arg2;  
  605. - (void)endPrintMode;  
  606. - (id)beginPrintModeForFrame:(id)arg1 withSize:(struct CGSize)arg2 startOffset:(float)arg3 minimumLayoutWidth:(float)arg4 maximumLayoutWidth:(float)arg5 tileClippedContent:(BOOL)arg6;  
  607. - (id)beginPrintModeWithSize:(struct CGSize)arg1 startOffset:(float)arg2 minimumLayoutWidth:(float)arg3 maximumLayoutWidth:(float)arg4 tileClippedContent:(BOOL)arg5;  
  608. - (id)beginPrintModeForFrame:(id)arg1 withWidth:(float)arg2 height:(float)arg3 startOffset:(float)arg4 shrinkToFit:(BOOL)arg5 tileClippedContent:(BOOL)arg6;  
  609. - (id)beginPrintModeWithWidth:(float)arg1 height:(float)arg2 startOffset:(float)arg3 shrinkToFit:(BOOL)arg4 tileClippedContent:(BOOL)arg5;  
  610. - (id)beginPrintModeWithWidth:(float)arg1 height:(float)arg2 startOffset:(float)arg3 shrinkToFit:(BOOL)arg4;  
  611. - (id)_beginPrintModeForPDFView:(id)arg1 withSize:(struct CGSize)arg2 startOffset:(float)arg3 minimumLayoutWidth:(float)arg4 maximumLayoutWidth:(float)arg5;  
  612. - (id)_beginPrintModeForHTMLView:(id)arg1 withSize:(struct CGSize)arg2 startOffset:(float)arg3 minimumLayoutWidth:(float)arg4 maximumLayoutWidth:(float)arg5 tileClippedContent:(BOOL)arg6;  
  613. - (BOOL)isInPrintMode;  
  614. - (struct CGPoint)constrainedPoint:(struct CGPoint)arg1;  
  615. - (BOOL)mouseEventsChangeSelection;  
  616. - (id)positionAtStartOrEndOfWord:(id)arg1;  
  617. - (id)asText;  
  618. - (struct CGRect)visibleBounds;  
  619. - (id)webVisiblePositionForPoint:(struct CGPoint)arg1;  
  620. - (void)setSelectionWithPoint:(struct CGPoint)arg1;  
  621. - (void)scrollSelectionToVisible:(BOOL)arg1;  
  622. - (void)cancelAutoscroll;  
  623. - (void)startAutoscroll:(struct CGPoint)arg1;  
  624. - (struct CGRect)contentFrameForView:(id)arg1;  
  625. @property(nonatomic) struct CGPoint autoscrollContentOffset;  
  626. - (BOOL)selectionIsCaretInDisplayBlockElementAtOffset:(int)arg1;  
  627. - (void)setSelectionToStart;  
  628. - (void)setSelectionToEnd;  
  629. - (void)setRangedSelectionWithExtentPoint:(struct CGPoint)arg1;  
  630. - (void)smartExtendRangedSelection:(int)arg1;  
  631. - (id)selectionRects;  
  632. - (id)selectionRectsForDOMRange:(id)arg1;  
  633. - (id)textInDOMRange:(id)arg1;  
  634. - (void)setSelectedDOMRange:(id)arg1 affinity:(int)arg2;  
  635. - (id)wordAtPoint:(struct CGPoint)arg1;  
  636. - (void)setSelectionWithFirstPoint:(struct CGPoint)arg1 secondPoint:(struct CGPoint)arg2;  
  637. - (void)setRangedSelectionExtentPoint:(struct CGPoint)arg1 baseIsStart:(BOOL)arg2 allowFlipping:(BOOL)arg3;  
  638. - (BOOL)setRangedSelectionExtentPoint:(struct CGPoint)arg1 baseIsStart:(BOOL)arg2;  
  639. - (void)setRangedSelectionInitialExtentToCurrentSelectionEnd;  
  640. - (void)setRangedSelectionInitialExtentToCurrentSelectionStart;  
  641. - (void)clearRangedSelectionInitialExtent;  
  642. - (void)setRangedSelectionBaseToCurrentSelectionEnd;  
  643. - (void)setRangedSelectionBaseToCurrentSelectionStart;  
  644. - (void)setRangedSelectionBaseToCurrentSelection;  
  645. - (void)setBaseWritingDirection:(int)arg1;  
  646. - (void)toggleBaseWritingDirection;  
  647. - (int)selectionBaseWritingDirection;  
  648. - (struct CGRect)caretRectForVisiblePosition:(id)arg1;  
  649. - (struct CGRect)caretRect;  
  650. - (struct UIEdgeInsets)caretInsets;  
  651. - (void)setCaretInsets:(struct UIEdgeInsets)arg1;  
  652. - (void)collapseSelection;  
  653. @property(readonly, nonatomic) int selectionState;  
  654. - (unsigned int)offsetInMarkedTextForSelection:(id)arg1;  
  655. - (struct CGRect)closestCaretRectInMarkedTextRangeForPoint:(struct CGPoint)arg1;  
  656. - (BOOL)hasMarkedText;  
  657. - (BOOL)hasEditableSelection;  
  658. - (void)clearSelection;  
  659. - (void)selectionChanged:(id)arg1;  
  660. - (void)selectionChanged;  
  661. - (struct CGPoint)convertPointToSelectedFrameCoordinates:(struct CGPoint)arg1;  
  662. - (struct CGRect)convertRectFromSelectedFrameCoordinates:(struct CGRect)arg1;  
  663. - (void)selectWord;  
  664. - (Class)_printFormatterClass;  
  665.   
  666. // Remaining properties  
  667. @property(nonatomic) BOOL acceptsEmoji; // @dynamic acceptsEmoji;  
  668. @property(nonatomic) BOOL acceptsFloatingKeyboard;  
  669. @property(nonatomic) BOOL acceptsSplitKeyboard;  
  670. @property(nonatomic) int autocapitalizationType; // @dynamic autocapitalizationType;  
  671. @property(nonatomic) int autocorrectionType; // @dynamic autocorrectionType;  
  672. @property(nonatomic) BOOL contentsIsSingleValue; // @dynamic contentsIsSingleValue;  
  673. @property(nonatomic) BOOL deferBecomingResponder;  
  674. @property(nonatomic) BOOL displaySecureTextUsingPlainText;  
  675. @property(nonatomic) int emptyContentReturnKeyType;  
  676. @property(nonatomic) BOOL enablesReturnKeyAutomatically; // @dynamic enablesReturnKeyAutomatically;  
  677. @property(nonatomic) BOOL forceEnableDictation;  
  678. @property(retain, nonatomic) UIColor *insertionPointColor; // @dynamic insertionPointColor;  
  679. @property(nonatomic) unsigned int insertionPointWidth; // @dynamic insertionPointWidth;  
  680. @property(nonatomic) int keyboardAppearance; // @dynamic keyboardAppearance;  
  681. @property(nonatomic) int keyboardType; // @dynamic keyboardType;  
  682. @property(nonatomic) BOOL learnsCorrections;  
  683. @property(nonatomic) BOOL returnKeyGoesToNextResponder;  
  684. @property(nonatomic) int returnKeyType; // @dynamic returnKeyType;  
  685. @property(nonatomic, getter=isSecureTextEntry) BOOL secureTextEntry; // @dynamic secureTextEntry;  
  686. @property(retain, nonatomic) UIColor *selectionBarColor; // @dynamic selectionBarColor;  
  687. @property(retain, nonatomic) UIImage *selectionDragDotImage; // @dynamic selectionDragDotImage;  
  688. @property(retain, nonatomic) UIColor *selectionHighlightColor; // @dynamic selectionHighlightColor;  
  689. @property(nonatomic) int shortcutConversionType; // @dynamic shortcutConversionType;  
  690. @property(nonatomic) int spellCheckingType; // @dynamic spellCheckingType;  
  691. @property(nonatomic) BOOL suppressReturnKeyStyling;  
  692. @property(readonly, nonatomic) UIView *textInputView;  
  693. @property(nonatomic) int textLoupeVisibility; // @dynamic textLoupeVisibility;  
  694. @property(nonatomic) int textSelectionBehavior; // @dynamic textSelectionBehavior;  
  695. @property(nonatomic) id textSuggestionDelegate; // @dynamic textSuggestionDelegate;  
  696. @property(nonatomic) struct __CFCharacterSet *textTrimmingSet; // @dynamic textTrimmingSet;  
  697. @property(nonatomic) BOOL useInterfaceLanguageForLocalization;  
  698.   
  699. @end  

UIWebDocumentView和WebView一樣是個很大的類,單看它所遵守的協議那麼多也足以讓人吃一驚。先看看它重要的成員變量吧:

WKWindow是WAKWindow的C語言實現,類似的,WKView是WAKView的底層實現。WAKView的addSubview的操作實際對應了一個C函數
_WKViewAddSubview(WKView* aInstance)
暫未有空去確定C實現的原因,目前猜測是方便其它模塊用Core Foundation來實現吧。

這個他們的聲明:

[cpp] view plain copy
  1. struct WKView {  
  2.     struct _WKObject _field1;  
  3.     struct _WKViewContext *_field2;  
  4.     struct WKWindow *_field3;  
  5.     struct WKView *_field4;  
  6.     struct __CFArray *_field5;  
  7.     struct CGPoint _field6;  
  8.     struct CGRect _field7;  
  9.     unsigned int _field8;  
  10.     float _field9;  
  11.     void *_field10;  
  12. };  
  13.   
  14. struct WKWindow {  
  15.     struct _WKObject _field1;  
  16.     id _field2;  
  17.     struct WKView *_field3;  
  18.     struct WKView *_field4;  
  19.     struct WKView *_field5;  
  20. };  

WebViewReachabilityObserver這個類是用作監控網絡狀態的,如wifi已連接、網絡已斷開等狀態。

id _delegate會指向一個UIWebView對象,如後面提到的一些來自WebView的通知會通過_delegate再轉發給UIWebView。

int _orientation記錄了屏幕的方向

三個名字跟overflowScrollViews有關的NSMutableSet是用來保存UIWebOverflowScrollView的,當css屬性帶有-webkit-overflow-scrolling : touch時會用到這些東西。

NSArray *_additionalSubviews保存附件的view,除了上面的UIWebOverflowScrollView,還可以是視頻View(FigPluginView)。

幾個手勢識別器請參考《iOS私有API(三) UIWebView下的手勢識別器gestureRecognizer

結構體_interaction把交互相關的成員變量放在了一起,每個變量都基本見名知意了。

兩個UIWebDocumentViewViewportConfiguration保存了默認和當前的viewport設置。

其他變量還有:fixed元素的位置偏移,document的scale,undoManager,檢查文字拼寫的UITextChecker,文件上傳面板以及很多聲明爲只用一個字節的狀態參數。


從函數名看:

  • 應用顯示點擊高亮框的UIHighlightView
  • 提供網頁內容選擇的接口來傳遞信息到WebView
  • 提供UIWebTiledView需要的layerClass以及繪圖緩存IOSurface
  • 把單擊、雙擊、縮放、鍵盤等事件傳遞到WebView
  • 負責網頁輸入框的處理
  • 接收WebView的回調通知,包括網頁已收到數據、完成排版、第一次繪製完畢等

總之,取名UIWeb“Document”View也有類似JavaScript中的document的意思,是操縱網頁的中樞。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章