Protocols

The following protocols are available globally.

  • Undocumented

    See more

    Declaration

    Objective-C

    @protocol MDCChipFieldDelegate <NSObject>
    
    @optional
    
    /**
     Tells the delegate that editing began in the specified chip field.
    
     @param chipField The MDCChipField where editing began.
     */
    - (void)chipFieldDidBeginEditing:(nonnull MDCChipField *)chipField;
    
    /**
     Tells the delegate when editing ends for the specified MDCChipField.
    
     @param chipField The MDCChipField where editing ended.
     */
    - (void)chipFieldDidEndEditing:(nonnull MDCChipField *)chipField;
    
    /**
     Tells the delegate when a chip is added. This delegate method is not called if @c chips
     array is directly set.
    
     @param chipField The MDCChipField where a chip was added.
     @param chip The chip that was added.
     */
    - (void)chipField:(nonnull MDCChipField *)chipField didAddChip:(nonnull MDCChipView *)chip;
    
    /**
     Asks the delegate whether the user-entered chip should be added to the chip field. If not
     implemented, YES is assumed.
    
     @param chipField The MDCChipField where a chip will be added.
     @param chip The chip to be added.
    
     @return YES if the chip should be added, NO otherwise.
     */
    - (BOOL)chipField:(nonnull MDCChipField *)chipField shouldAddChip:(nonnull MDCChipView *)chip;
    
    /**
     Tells the delegate when a chip is removed. This delegate method is not called if @c chips
     array is directly set.
    
     @param chipField The MDCChipField where a chip was removed.
     @param chip The chip that was removed.
     */
    - (void)chipField:(nonnull MDCChipField *)chipField didRemoveChip:(nonnull MDCChipView *)chip;
    
    /**
     Tells the delegate when the height of the chip field changes.
    
     @param chipField The MDCChipField which height changed.
     */
    - (void)chipFieldHeightDidChange:(nonnull MDCChipField *)chipField;
    
    /**
     Tells the delegate when the text in the chip field changes.
    
     @param chipField The MDCChipField where text has changed.
     @param input The text entered into the chip field that has not yet been converted to a chip.
     */
    - (void)chipField:(nonnull MDCChipField *)chipField didChangeInput:(nullable NSString *)input;
    
    /**
     Tells the delegate when a chip in the chip field is tapped.
    
     @param chipField The MDCChipField which has a chip that was tapped.
     @param chip The chip that was tapped.
     */
    - (void)chipField:(nonnull MDCChipField *)chipField didTapChip:(nonnull MDCChipView *)chip;
    
    /**
     Called when 'return' key is pressed in the text field contained within the chip field. Return
     YES to use default behavior where chip is created. Return NO to override default behavior, no
     chip is created and client must manually create and add a chip.
    
     @param chipField The MDCChipField where return was pressed.
     */
    - (BOOL)chipFieldShouldReturn:(nonnull MDCChipField *)chipField;
    
    /**
     Asks the delegate whether the chip field should become first responder when it is tapped. If not
     implemented, YES is assumed.
    
     @param chipField The MDCChipField that becomes the first responder.
    
     @return YES if the chip field should become first responder, NO otherwise.
     */
    - (BOOL)chipFieldShouldBecomeFirstResponder:(nonnull MDCChipField *)chipField;
    
    @end
  • A protocol for objects that create closed CGPaths of varying sizes.

    See more

    Declaration

    Objective-C

    @protocol MDCShapeGenerating <NSCopying>
  • Undocumented

    See more

    Declaration

    Objective-C

    @protocol MDCMultilineTextInputDelegate <NSObject>
    
    @optional
    
    /**
     Called when the clear button is tapped.
    
     Return YES to set the textfield's .text to nil.
     Return NO to ignore and keep the .text.
    
     A direct mirror of UITextFieldDelegate's textFieldShouldClear:.
    
     UITextView's don't require this method already because they do not have clear buttons. The clear
     button in MDCMultilineTextField is custom.
     */
    - (BOOL)multilineTextFieldShouldClear:(UIView<MDCTextInput> *)textField;
    
    @end
  • MDCTextInputPositioningDelegate allows objects outside an MDCTextInput, like MDCTextInputController, to pass the MDCTextInput important layout information.

    Usually, these methods are direct mirrors of internal methods with the addition of a default value.

    See more

    Declaration

    Objective-C

    @protocol MDCTextInputPositioningDelegate <NSObject>
  • Common API for Material Design compliant text inputs.

    See more

    Declaration

    Objective-C

    @protocol MDCTextInput <NSObject>
  • Common API for text inputs that support having a leading view.

    MDCTextField implements this protocol but MDCMultilineTextField does not because the designers determined multiline text fields should only have trailing views.

    See more

    Declaration

    Objective-C

    @protocol MDCLeadingViewTextInput <MDCTextInput>
  • Common API for Material Design compliant multi-line text inputs.

    See more

    Declaration

    Objective-C

    @protocol MDCMultilineTextInput <MDCTextInput>
  • Protocol for custom character counters.

    Instead of relying on the default character count which is naive (counts each character regardless of context), this object can instead choose to do sophisticated counting (ie: ignoring whitespace, ignoring url strings, ignoring usernames, etc).

    See more

    Declaration

    Objective-C

    @protocol MDCTextInputCharacterCounter <NSObject>