// // IQKeyboardManagerConstants.h // https://github.com/hackiftekhar/IQKeyboardManager // Copyright (c) 2013-15 Iftekhar Qurashi. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. #ifndef IQKeyboardManagerConstants_h #define IQKeyboardManagerConstants_h #import ///---------------- /// @name Debugging ///---------------- /** Set IQKEYBOARDMANAGER_DEBUG=1 in preprocessor macros under build settings to enable debugging. */ ///----------------------------------- /// @name IQAutoToolbarManageBehaviour ///----------------------------------- /** `IQAutoToolbarBySubviews` Creates Toolbar according to subview's hirarchy of Textfield's in view. `IQAutoToolbarByTag` Creates Toolbar according to tag property of TextField's. `IQAutoToolbarByPosition` Creates Toolbar according to the y,x position of textField in it's superview coordinate. */ typedef NS_ENUM(NSInteger, IQAutoToolbarManageBehaviour) { IQAutoToolbarBySubviews, IQAutoToolbarByTag, IQAutoToolbarByPosition, }; ///------------------- /// @name Localization ///------------------- #define IQLocalizedString(key, comment) [[NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:@"IQKeyboardManager" ofType:@"bundle"]] localizedStringForKey:(key) value:@"" table:@"IQKeyboardManager"] /* XCode 5.0 Compatibility for NS_DESIGNATED_INITIALIZER*/ #ifndef NS_DESIGNATED_INITIALIZER #if __has_attribute(objc_designated_initializer) #define NS_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) #else #define NS_DESIGNATED_INITIALIZER #endif #endif #endif /* /---------------------------------------------------------------------------------------------------\ \---------------------------------------------------------------------------------------------------/ | iOS NSNotification Mechanism | /---------------------------------------------------------------------------------------------------\ \---------------------------------------------------------------------------------------------------/ 1) Begin Editing:- When TextField begin editing. 2) End Editing:- When TextField end editing. 3) Switch TextField:- When Keyboard Switch from a TextField to another TextField. 3) Orientation Change:- When Device Orientation Change. ---------------------------------------------------------------------------------------------------------------------------------------------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ---------------------------------------------------------------------------------------------------------------------------------------------- ============= UITextField ============= Begin Editing Begin Editing -------------------------------------------- ---------------------------------- --------------------------------- |UITextFieldTextDidBeginEditingNotification| --------> | UIKeyboardWillShowNotification | --------> | UIKeyboardDidShowNotification | -------------------------------------------- ---------------------------------- --------------------------------- ^ Switch TextField ^ Switch TextField | | | | | Switch TextField | Orientation Change | | | | | | -------------------------------------------- | ---------------------------------- --------------------------------- | UITextFieldTextDidEndEditingNotification | <-------- | UIKeyboardWillHideNotification | --------> | UIKeyboardDidHideNotification | -------------------------------------------- ---------------------------------- --------------------------------- | End Editing ^ | | |--------------------End Editing-------------------------------------------------------------| ---------------------------------------------------------------------------------------------------------------------------------------------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ---------------------------------------------------------------------------------------------------------------------------------------------- ============= UITextView ============= |-------------------Switch TextView--------------------------------------------------------------| | |------------------Begin Editing-------------------------------------------------------------| | | | | | v | Begin Editing Switch TextView v | -------------------------------------------- ---------------------------------- --------------------------------- | UITextViewTextDidBeginEditingNotification| <-------- | UIKeyboardWillShowNotification | --------> | UIKeyboardDidShowNotification | -------------------------------------------- ---------------------------------- --------------------------------- ^ | |------------------------Switch TextView--------| | | Orientation Change | | | | | | -------------------------------------------- | ---------------------------------- --------------------------------- | UITextViewTextDidEndEditingNotification | <-------- | UIKeyboardWillHideNotification | | UIKeyboardDidHideNotification | -------------------------------------------- ---------------------------------- --------------------------------- | End Editing ^ | | |--------------------End Editing-------------------------------------------------------------| ---------------------------------------------------------------------------------------------------------------------------------------------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ---------------------------------------------------------------------------------------------------------------------------------------------- */