mirror of https://github.com/LIJI32/SameBoy.git
44 lines
1.4 KiB
Objective-C
44 lines
1.4 KiB
Objective-C
#import "GBCheckableAlertController.h"
|
|
|
|
/* Private API */
|
|
@interface UIAlertAction()
|
|
- (bool)_isChecked;
|
|
- (void)_setChecked:(bool)checked;
|
|
@end
|
|
|
|
@implementation GBCheckableAlertController
|
|
{
|
|
bool _addedChecks;
|
|
}
|
|
|
|
- (void)viewWillAppear:(BOOL)animated
|
|
{
|
|
if (@available(iOS 13.0, *)) {
|
|
if (!_addedChecks && _selectedAction) {
|
|
_addedChecks = true;
|
|
NSMutableSet *set = [NSMutableSet setWithObject:self.view];
|
|
while (set.count) {
|
|
UIView *view = [set anyObject];
|
|
[set removeObject:view];
|
|
if ([view.debugDescription containsString:_selectedAction.debugDescription]) {
|
|
UIImageView *checkImage = [[UIImageView alloc] initWithImage:[UIImage systemImageNamed:@"checkmark"]];
|
|
CGRect bounds = view.bounds;
|
|
CGRect frame = checkImage.frame;
|
|
frame.origin.x = bounds.size.width - frame.size.width - 12;
|
|
frame.origin.y = round((bounds.size.height - frame.size.height) / 2);
|
|
checkImage.frame = frame;
|
|
[view addSubview:checkImage];
|
|
break;
|
|
}
|
|
[set addObjectsFromArray:view.subviews];
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
[_selectedAction _setChecked:true];
|
|
}
|
|
[super viewWillAppear:animated];
|
|
}
|
|
|
|
@end
|