123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236 |
- //
- // ZSSRichTextEditorViewController.h
- // ZSSRichTextEditor
- //
- // Created by Nicholas Hubbard on 11/30/13.
- // Copyright (c) 2013 Zed Said Studio. All rights reserved.
- //
- #import <UIKit/UIKit.h>
- #import <WebKit/WebKit.h>
- #import "HRColorPickerViewController.h"
- #import "ZSSFontsViewController.h"
- /**
- * The types of toolbar items that can be added
- */
- static NSString * const ZSSRichTextEditorToolbarBold = @"com.zedsaid.toolbaritem.bold";
- static NSString * const ZSSRichTextEditorToolbarItalic = @"com.zedsaid.toolbaritem.italic";
- static NSString * const ZSSRichTextEditorToolbarSubscript = @"com.zedsaid.toolbaritem.subscript";
- static NSString * const ZSSRichTextEditorToolbarSuperscript = @"com.zedsaid.toolbaritem.superscript";
- static NSString * const ZSSRichTextEditorToolbarStrikeThrough = @"com.zedsaid.toolbaritem.strikeThrough";
- static NSString * const ZSSRichTextEditorToolbarUnderline = @"com.zedsaid.toolbaritem.underline";
- static NSString * const ZSSRichTextEditorToolbarRemoveFormat = @"com.zedsaid.toolbaritem.removeFormat";
- static NSString * const ZSSRichTextEditorToolbarJustifyLeft = @"com.zedsaid.toolbaritem.justifyLeft";
- static NSString * const ZSSRichTextEditorToolbarJustifyCenter = @"com.zedsaid.toolbaritem.justifyCenter";
- static NSString * const ZSSRichTextEditorToolbarJustifyRight = @"com.zedsaid.toolbaritem.justifyRight";
- static NSString * const ZSSRichTextEditorToolbarJustifyFull = @"com.zedsaid.toolbaritem.justifyFull";
- static NSString * const ZSSRichTextEditorToolbarH1 = @"com.zedsaid.toolbaritem.h1";
- static NSString * const ZSSRichTextEditorToolbarH2 = @"com.zedsaid.toolbaritem.h2";
- static NSString * const ZSSRichTextEditorToolbarH3 = @"com.zedsaid.toolbaritem.h3";
- static NSString * const ZSSRichTextEditorToolbarH4 = @"com.zedsaid.toolbaritem.h4";
- static NSString * const ZSSRichTextEditorToolbarH5 = @"com.zedsaid.toolbaritem.h5";
- static NSString * const ZSSRichTextEditorToolbarH6 = @"com.zedsaid.toolbaritem.h6";
- static NSString * const ZSSRichTextEditorToolbarTextColor = @"com.zedsaid.toolbaritem.textColor";
- static NSString * const ZSSRichTextEditorToolbarBackgroundColor = @"com.zedsaid.toolbaritem.backgroundColor";
- static NSString * const ZSSRichTextEditorToolbarUnorderedList = @"com.zedsaid.toolbaritem.unorderedList";
- static NSString * const ZSSRichTextEditorToolbarOrderedList = @"com.zedsaid.toolbaritem.orderedList";
- static NSString * const ZSSRichTextEditorToolbarHorizontalRule = @"com.zedsaid.toolbaritem.horizontalRule";
- static NSString * const ZSSRichTextEditorToolbarIndent = @"com.zedsaid.toolbaritem.indent";
- static NSString * const ZSSRichTextEditorToolbarOutdent = @"com.zedsaid.toolbaritem.outdent";
- static NSString * const ZSSRichTextEditorToolbarInsertImage = @"com.zedsaid.toolbaritem.insertImage";
- static NSString * const ZSSRichTextEditorToolbarInsertImageFromDevice = @"com.zedsaid.toolbaritem.insertImageFromDevice";
- static NSString * const ZSSRichTextEditorToolbarInsertLink = @"com.zedsaid.toolbaritem.insertLink";
- static NSString * const ZSSRichTextEditorToolbarRemoveLink = @"com.zedsaid.toolbaritem.removeLink";
- static NSString * const ZSSRichTextEditorToolbarQuickLink = @"com.zedsaid.toolbaritem.quickLink";
- static NSString * const ZSSRichTextEditorToolbarUndo = @"com.zedsaid.toolbaritem.undo";
- static NSString * const ZSSRichTextEditorToolbarRedo = @"com.zedsaid.toolbaritem.redo";
- static NSString * const ZSSRichTextEditorToolbarViewSource = @"com.zedsaid.toolbaritem.viewSource";
- static NSString * const ZSSRichTextEditorToolbarParagraph = @"com.zedsaid.toolbaritem.paragraph";
- static NSString * const ZSSRichTextEditorToolbarAll = @"com.zedsaid.toolbaritem.all";
- static NSString * const ZSSRichTextEditorToolbarNone = @"com.zedsaid.toolbaritem.none";
- static NSString * const ZSSRichTextEditorToolbarFonts = @"com.zedsaid.toolbaritem.fonts";
- // source string for parsing JSON
- static NSString * const ZSSEditorHTML = @"zss_editor.getHTML();";
- static NSString * const ZSSEditorText = @"zss_editor.getText();";
- static NSString * const ZSSEditorContent = @"document.activeElement.id=='zss_editor_content'";
- @class ZSSBarButtonItem;
- /**
- * The viewController used with ZSSRichTextEditor
- */
- @interface ZSSRichTextEditor : UIViewController <WKUIDelegate, WKNavigationDelegate, WKScriptMessageHandler, HRColorPickerViewControllerDelegate, UITextViewDelegate, UINavigationControllerDelegate, UIImagePickerControllerDelegate,ZSSFontsViewControllerDelegate>
- /**
- * The base URL to use for the webView
- */
- @property (nonatomic, strong) NSURL *baseURL;
- /**
- * If the HTML should be formatted to be pretty
- */
- @property (nonatomic) BOOL formatHTML;
- /**
- * If the keyboard should be shown when the editor loads
- */
- @property (nonatomic) BOOL shouldShowKeyboard;
- /**
- * If the toolbar should always be shown or not
- */
- @property (nonatomic) BOOL alwaysShowToolbar;
- /**
- * If the sub class recieves text did change events or not
- */
- @property (nonatomic) BOOL receiveEditorDidChangeEvents;
- /**
- * The placeholder text to use if there is no editor content
- */
- @property (nonatomic, strong) NSString *placeholder;
- /**
- * Toolbar items to include
- */
- @property (nonatomic, strong) NSArray *enabledToolbarItems;
- /**
- * Color to tint the toolbar items
- */
- @property (nonatomic, strong) UIColor *toolbarItemTintColor;
- /**
- * Color to tint selected items
- */
- @property (nonatomic, strong) UIColor *toolbarItemSelectedTintColor;
- /**
- * Sets the HTML for the entire editor
- *
- * @param html HTML string to set for the editor
- *
- */
- - (void)setHTML:(NSString *)html;
- /**
- * Returns the HTML from the Rich Text Editor
- *
- */
- - (void)getHTML:(void (^ _Nullable)(_Nullable id, NSError * _Nullable error))completionHandler;
- /**
- * Returns the plain text from the Rich Text Editor
- *
- */
- - (void)getText:(void (^ _Nullable)(_Nullable id, NSError * _Nullable error))completionHandler;
- /**
- * Inserts HTML at the caret position
- *
- * @param html HTML string to insert
- *
- */
- - (void)insertHTML:(NSString *)html;
- /**
- * Manually focuses on the text editor
- */
- - (void)focusTextEditor;
- /**
- * Manually dismisses on the text editor
- */
- - (void)blurTextEditor;
- /**
- * Shows the insert image dialog with optinal inputs
- *
- * @param url The URL for the image
- * @param alt The alt for the image
- */
- - (void)showInsertImageDialogWithLink:(NSString *)url alt:(NSString *)alt;
- /**
- * Inserts an image
- *
- * @param url The URL for the image
- * @param alt The alt attribute for the image
- */
- - (void)insertImage:(NSString *)url alt:(NSString *)alt;
- /**
- * Shows the insert link dialog with optional inputs
- *
- * @param url The URL for the link
- * @param title The tile for the link
- */
- - (void)showInsertLinkDialogWithLink:(NSString *)url title:(NSString *)title;
- /**
- * Inserts a link
- *
- * @param url The URL for the link
- * @param title The title for the link
- */
- - (void)insertLink:(NSString *)url title:(NSString *)title;
- /**
- * Gets called when the insert URL picker button is tapped in an alertView
- *
- * @warning The default implementation of this method is blank and does nothing
- */
- - (void)showInsertURLAlternatePicker;
- /**
- * Gets called when the insert Image picker button is tapped in an alertView
- *
- * @warning The default implementation of this method is blank and does nothing
- */
- - (void)showInsertImageAlternatePicker;
- /**
- * Dismisses the current AlertView
- */
- - (void)dismissAlertView;
- /**
- * Add a custom UIBarButtonItem by using a UIButton
- */
- - (void)addCustomToolbarItemWithButton:(UIButton*)button;
- /**
- * Add a custom ZSSBarButtonItem
- */
- - (void)addCustomToolbarItem:(ZSSBarButtonItem *)item;
- /**
- * Scroll event callback with position
- */
- - (void)editorDidScrollWithPosition:(NSInteger)position;
- /**
- * Text change callback with text and html
- */
- - (void)editorDidChangeWithText:(NSString *)text andHTML:(NSString *)html;
- /**
- * Hashtag callback with word
- */
- - (void)hashtagRecognizedWithWord:(NSString *)word;
- /**
- * Mention callback with word
- */
- - (void)mentionRecognizedWithWord:(NSString *)word;
- /**
- * Set custom css
- */
- - (void)setCSS:(NSString *)css;
- @end
|