输入弹窗

AUInputDialog 为带文本输入框的弹窗样式。弹窗的 window 层级逻辑为 self.windowLevel = UIWindowLevelAlert - 1

效果图

接口说明

@interface AUInputDialog : AUDialogBaseView

/// 文本输入框
@property (nonatomic, strong, readonly) UITextField *textField;

/**
 该实例是否在展示,适用于有指针指向该实例的情况。
 如果有其他 dialog 盖住此 dialog,属性值也为 YES 不会发生变化。
 */
@property (nonatomic, assign, readonly) BOOL isDisplay;

/**
 * 标题
 */
@property (nonatomic, strong) NSString *title;

/**
 * 文本消息
 */
@property (nonatomic, strong) NSString *message;

/**
 不带按钮标题的初始化方法。

 @param title 标题
 @param message 消息内容
 @return AUInputDialog 实例
 */
- (instancetype)initWithTitle:(NSString *)title
                      message:(NSString *)message;


/**
 AUInputDialog 实例化方法

 @param title 标题
 @param message 消息内容
 @param placeholder 文本框的占位文字
 @param delegate 代理对象
 @param buttonTitle 按钮标题
 @return AUInputDialog 实例
 */
- (instancetype)initWithTitle:(NSString *)title
                      message:(NSString *)message
                  placeholder:(NSString *)placeholder
                     delegate:(id<AUDialogDelegate>)delegate
                 buttonTitles:(NSString *)buttonTitle, ... NS_REQUIRES_NIL_TERMINATION;

- (instancetype)initWithCustomView:(UIView *)customView; // 自定义内容区域

/// 禁用的初始化方法
- (instancetype)init NS_UNAVAILABLE;

/**
 Dialog 展示方法。
 */
- (void)show;

/**
 Dialog 消失方法, 如果监听 will/didDismissWithButtonIndex: 回调 index 值为默认的 0
 */
- (void)dismiss;

/**
 隐藏 Dialog Window 上全部 dialog 视图
 */
+ (void)dismissAll;

/**
 描述文本置为灰色,默认为 YES
 */
- (void)setGrayMessage:(BOOL)grayMessage;

/**
 设置文本对齐

 @param alignment 对齐参数
 */
- (void)setMessageAlignment:(NSTextAlignment)alignment;

/**
 添加按钮以及其回调方法。

 @param buttonTitle 按钮标题
 @param actionBlock 按钮点击回调
 */
- (void)addButton:(NSString *)buttonTitle actionBlock:(AUDialogActionBlock)actionBlock;

代码示例

  • 普通样式:

    AUInputDialog *dialog = [[AUInputDialog alloc] initWithTitle:@"标题" message:@"可能包含通知警报的声音图标和按钮。这些可以" placeholder:@"给朋友留言" delegate:self buttonTitles:@"取消", @"主操作", nil];
    [dialog show];
  • 自定义样式:

    UIView *customView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 240, 60)];
    customView.backgroundColor = [UIColor greenColor];
    AUInputDialog *dialog = [[AUInputDialog alloc] initWithCustomView:customView];
    [dialog addButton:@"取消" actionBlock:nil];
    [dialog addButton:@"确定" actionBlock:nil];
    [dialog show];