添加弹窗
This commit is contained in:
@@ -48,6 +48,15 @@ typedef void (^KBAlertTextHandler)(NSString * _Nullable text, BOOL ok);
|
||||
cancel:(nullable NSString *)cancelTitle
|
||||
completion:(KBAlertBoolHandler)completion;
|
||||
|
||||
/// 自定义“确定/取消”按钮颜色(为 nil 时使用系统默认)
|
||||
+ (void)confirmTitle:(nullable NSString *)title
|
||||
message:(nullable NSString *)message
|
||||
ok:(nullable NSString *)okTitle
|
||||
cancel:(nullable NSString *)cancelTitle
|
||||
okColor:(nullable UIColor *)okColor
|
||||
cancelColor:(nullable UIColor *)cancelColor
|
||||
completion:(KBAlertBoolHandler)completion;
|
||||
|
||||
#pragma mark - 输入框(单行)
|
||||
/// 带单个输入框;ok=YES 时返回输入内容。
|
||||
+ (void)promptTitle:(nullable NSString *)title
|
||||
@@ -72,4 +81,3 @@ typedef void (^KBAlertTextHandler)(NSString * _Nullable text, BOOL ok);
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
||||
|
||||
@@ -119,6 +119,22 @@ static __weak UIViewController *sDefaultPresenter = nil; // 可选外部指定
|
||||
ok:(NSString *)okTitle
|
||||
cancel:(NSString *)cancelTitle
|
||||
completion:(KBAlertBoolHandler)completion {
|
||||
[self confirmTitle:title message:message ok:okTitle cancel:cancelTitle okColor:nil cancelColor:nil completion:completion];
|
||||
}
|
||||
|
||||
// KVC 方式设置 action 文字颜色(非公开 API,做保护)
|
||||
static inline void KBSetActionTitleColor(UIAlertAction *action, UIColor *color) {
|
||||
if (!color || !action) return;
|
||||
@try { [action setValue:color forKey:@"titleTextColor"]; } @catch (__unused NSException *e) {}
|
||||
}
|
||||
|
||||
+ (void)confirmTitle:(NSString *)title
|
||||
message:(NSString *)message
|
||||
ok:(NSString *)okTitle
|
||||
cancel:(NSString *)cancelTitle
|
||||
okColor:(UIColor *)okColor
|
||||
cancelColor:(UIColor *)cancelColor
|
||||
completion:(KBAlertBoolHandler)completion {
|
||||
[self enqueuePresent:^{
|
||||
UIViewController *vc = [self presentingVC];
|
||||
if (!vc) { [self _markFinishedAndContinue]; return; }
|
||||
@@ -138,6 +154,10 @@ static __weak UIViewController *sDefaultPresenter = nil; // 可选外部指定
|
||||
[wac dismissViewControllerAnimated:YES completion:nil];
|
||||
[KBAlert _markFinishedAndContinue];
|
||||
}];
|
||||
// 自定义颜色
|
||||
KBSetActionTitleColor(okAct, okColor);
|
||||
KBSetActionTitleColor(cancelAct, cancelColor);
|
||||
|
||||
[ac addAction:cancelAct];
|
||||
[ac addAction:okAct];
|
||||
[vc presentViewController:ac animated:YES completion:nil];
|
||||
@@ -221,4 +241,3 @@ static __weak UIViewController *sDefaultPresenter = nil; // 可选外部指定
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
|
||||
@@ -81,9 +81,9 @@
|
||||
|
||||
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
[tableView deselectRowAtIndexPath:indexPath animated:YES];
|
||||
// KBSearchVC *vc = [[KBSearchVC alloc] init];
|
||||
KBSearchVC *vc = [[KBSearchVC alloc] init];
|
||||
// [self.navigationController pushViewController:vc animated:true];
|
||||
// UINavigationController *nav = KB_CURRENT_NAV;
|
||||
UINavigationController *nav = KB_CURRENT_NAV;
|
||||
// [nav pushViewController:vc animated:true];
|
||||
NSLog(@"===");
|
||||
|
||||
|
||||
@@ -20,10 +20,14 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
/// 配置标题与是否显示垃圾桶
|
||||
- (void)configWithTitle:(NSString *)title showTrash:(BOOL)showTrash;
|
||||
|
||||
/// 清除按钮点击回调
|
||||
/// 清除按钮点击回调(用户在弹窗中点击“确定”后触发)
|
||||
@property (nonatomic, copy) void(^onTapTrash)(void);
|
||||
|
||||
/// “确定”按钮颜色(默认黑色)
|
||||
@property (nonatomic, strong, nullable) UIColor *confirmColor;
|
||||
/// “取消”按钮颜色(默认黑色)
|
||||
@property (nonatomic, strong, nullable) UIColor *cancelColor;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
//
|
||||
|
||||
#import "KBSearchSectionHeader.h"
|
||||
#import "KBAlert.h"
|
||||
|
||||
@interface KBSearchSectionHeader ()
|
||||
@property (nonatomic, strong, readwrite) UILabel *titleLabel;
|
||||
@@ -15,6 +16,8 @@
|
||||
- (instancetype)initWithFrame:(CGRect)frame {
|
||||
if (self = [super initWithFrame:frame]) {
|
||||
[self setupUI];
|
||||
_confirmColor = [UIColor redColor];
|
||||
_cancelColor = [UIColor blackColor];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
@@ -39,7 +42,19 @@
|
||||
}
|
||||
|
||||
- (void)tapTrash {
|
||||
if (self.onTapTrash) { self.onTapTrash(); }
|
||||
// 弹出确认框:是否删除所有历史记录
|
||||
__weak typeof(self) weakSelf = self;
|
||||
[KBAlert confirmTitle:@"清空历史"
|
||||
message:@"是否删除所有历史记录?"
|
||||
ok:@"确定"
|
||||
cancel:@"取消"
|
||||
okColor:weakSelf.confirmColor
|
||||
cancelColor:weakSelf.cancelColor
|
||||
completion:^(BOOL ok) {
|
||||
if (ok && weakSelf.onTapTrash) {
|
||||
weakSelf.onTapTrash();
|
||||
}
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)configWithTitle:(NSString *)title showTrash:(BOOL)showTrash {
|
||||
@@ -69,4 +84,3 @@
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user