This commit is contained in:
2025-11-03 16:57:24 +08:00
parent 1673a2f4be
commit 915b329805
7 changed files with 187 additions and 98 deletions

View File

@@ -9,6 +9,8 @@
#import "KBGuideTopCell.h"
#import "KBGuideKFCell.h"
#import "KBGuideUserCell.h"
#import "KBPermissionViewController.h"
#import "KBKeyboardPermissionManager.h"
typedef NS_ENUM(NSInteger, KBGuideItemType) {
KBGuideItemTypeTop = 0, //
@@ -75,12 +77,49 @@ typedef NS_ENUM(NSInteger, KBGuideItemType) {
self.bgTap.cancelsTouchesInView = NO;
self.bgTap.delegate = self;
[self.tableView addGestureRecognizer:self.bgTap];
// /
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(kb_checkKeyboardPermission) name:UIApplicationDidBecomeActiveNotification object:nil];
}
- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
//
[self kb_checkKeyboardPermission];
}
///
/// - 访 =>
/// - =>
- (void)kb_checkKeyboardPermission {
KBKeyboardPermissionManager *mgr = [KBKeyboardPermissionManager shared];
BOOL enabled = [mgr isKeyboardEnabled];
KBFARecord fa = [mgr lastKnownFullAccess];
BOOL needGuide = (!enabled) || (enabled && fa == KBFARecordDenied);
UIViewController *top = [UIViewController kb_topMostViewController];
if (needGuide) {
if (![top isKindOfClass:[KBPermissionViewController class]]) {
KBPermissionViewController *guide = [KBPermissionViewController new];
guide.modalPresentationStyle = UIModalPresentationFullScreen;
__weak typeof(self) weakSelf = self;
guide.onBack = ^{
// 退
[weakSelf.navigationController popViewControllerAnimated:YES];
};
[top presentViewController:guide animated:YES completion:nil];
}
} else {
if ([top isKindOfClass:[KBPermissionViewController class]]) {
[top dismissViewControllerAnimated:YES completion:nil];
}
}
}
- (void)kb_didTapBackground {
//
[self.view endEditing:YES];