90 lines
2.7 KiB
Objective-C
90 lines
2.7 KiB
Objective-C
//
|
|
// AppDelegate.m
|
|
// Password Generator
|
|
//
|
|
// Created by User on 9/16/26.
|
|
// Copyright (c) 2026 User. All rights reserved.
|
|
//
|
|
|
|
#import "AppDelegate.h"
|
|
|
|
@implementation AppDelegate
|
|
|
|
- (void)dealloc
|
|
{
|
|
[super dealloc];
|
|
}
|
|
|
|
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
|
|
{
|
|
[self.regenerateButton sendAction:self.regenerateButton.action to:self.regenerateButton.target];
|
|
}
|
|
|
|
- (IBAction)lengthSliderChanged:(id)sender {
|
|
[self.lengthText setStringValue:[NSString stringWithFormat:@"Password Length: %ld", (long)[sender integerValue]]];
|
|
[self.regenerateButton sendAction:self.regenerateButton.action to:self.regenerateButton.target];
|
|
}
|
|
|
|
// preset buttons
|
|
|
|
- (IBAction)preset8ButtonClicked:(id)sender
|
|
{
|
|
self.lengthSlider.integerValue = 8;
|
|
[self.lengthSlider sendAction:self.lengthSlider.action to:self.lengthSlider.target];
|
|
}
|
|
|
|
- (IBAction)preset16ButtonClicked:(id)sender
|
|
{
|
|
self.lengthSlider.integerValue = 16;
|
|
[self.lengthSlider sendAction:self.lengthSlider.action to:self.lengthSlider.target];
|
|
}
|
|
|
|
- (IBAction)preset32ButtonClicked:(id)sender
|
|
{
|
|
self.lengthSlider.integerValue = 32;
|
|
[self.lengthSlider sendAction:self.lengthSlider.action to:self.lengthSlider.target];
|
|
}
|
|
|
|
- (IBAction)preset64ButtonClicked:(id)sender
|
|
{
|
|
self.lengthSlider.integerValue = 64;
|
|
[self.lengthSlider sendAction:self.lengthSlider.action to:self.lengthSlider.target];
|
|
}
|
|
|
|
- (IBAction)preset128ButtonClicked:(id)sender
|
|
{
|
|
self.lengthSlider.integerValue = 128;
|
|
[self.lengthSlider sendAction:self.lengthSlider.action to:self.lengthSlider.target];
|
|
}
|
|
|
|
// end
|
|
|
|
- (IBAction)checkBoxChange:(id)sender
|
|
{
|
|
[self.regenerateButton sendAction:self.regenerateButton.action to:self.regenerateButton.target];
|
|
}
|
|
|
|
- (IBAction)regenerateButtonClicked:(id)sender {
|
|
NSMutableString *chars = [NSMutableString string];
|
|
if ([self.uppercaseCheck state] == NSOnState) [chars appendString:@"ABCDEFGHIJKLMNOPQRSTUVWXYZ"];
|
|
if ([self.lowercaseCheck state] == NSOnState) [chars appendString:@"abcdefghijklmnopqrstuvwxyz"];
|
|
if ([self.numbersCheck state] == NSOnState) [chars appendString:@"0123456789"];
|
|
if ([self.symbolsCheck state] == NSOnState) [chars appendString:@"!@#$%^&*"];
|
|
|
|
if (chars.length == 0) {
|
|
[self.outputBox setStringValue:@""];
|
|
return;
|
|
}
|
|
|
|
NSMutableString *password = [NSMutableString stringWithCapacity:self.lengthSlider.integerValue];
|
|
for (NSUInteger i = 0; i < self.lengthSlider.integerValue; i++) {
|
|
uint32_t randomIndex = arc4random_uniform((uint32_t)chars.length);
|
|
unichar c = [chars characterAtIndex:randomIndex];
|
|
[password appendFormat:@"%C", c];
|
|
}
|
|
|
|
[self.outputBox setStringValue:[password copy]];
|
|
}
|
|
|
|
@end
|