blob: 52e226f672ab4af26e73203df2e01fab10d1ff1a [file] [log] [blame] [edit]
// Copyright 2016-present the Material Components for iOS authors. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#import <UIKit/UIKit.h>
#import "MDCTextInput.h"
#import "MaterialElevation.h"
/** When text is manually set via .text or setText:, this notification fires. */
extern NSString *_Nonnull const MDCTextFieldTextDidSetTextNotification;
/** When the value of `enabled` changes on the text input, this notification fires. */
extern NSString *_Nonnull const MDCTextInputDidToggleEnabledNotification;
/**
Material Design compliant single-line text input.
https://www.google.com/design/spec/components/text-fields.html#text-fields-single-line-text-field
*/
__deprecated_msg(
"MDCTextField and its associated classes are deprecated. Please use TextControls instead.")
@interface MDCTextField
: UITextField<MDCTextInput, MDCLeadingViewTextInput, MDCElevatable, MDCElevationOverriding>
/** MDCTextField does not implement borders that conform to UITextBorderStyle. */
@property(nonatomic, assign) UITextBorderStyle borderStyle NS_UNAVAILABLE;
/**
This label should always have the same layout as the input field (which is private API.)
Unfortunately the included private baseline strut (which is the label returned for baseline-based
auto layout) has bugs that keep it from matching custom layout. We recreate it but also allow it to
have a width in case someone needs other kinds of auto layout constraints based off the input.
It always has an alpha of 0.0.
*/
@property(nonatomic, nonnull, strong, readonly) UILabel *inputLayoutStrut;
/**
An overlay view on the leading side.
Note: if RTL is engaged, this will return the .rightView and if LTR, it will return the .leftView.
*/
@property(nonatomic, nullable, strong) UIView *leadingView;
/**
Controls when the leading view will display.
*/
@property(nonatomic, assign) UITextFieldViewMode leadingViewMode;
/**
A block that is invoked when the @c MDCTextField receives a call to @c
traitCollectionDidChange:. The block is called after the call to the superclass.
*/
@property(nonatomic, copy, nullable) void (^traitCollectionDidChangeBlock)
(MDCTextField *_Nonnull textField, UITraitCollection *_Nullable previousTraitCollection);
@end