没有什么能阻挡,我对自由的向往。
缘由
之所以做这个小程序是因为我想测一下自己的手速(从a打到z需要的时间),在网上没有找到测试的网页和软件,于是我就自己尝试做了一个,结果成功从iOS码农转型到macOS码农。
七夕还在敲代码,我很快乐界面是这样的
一个输入框,一个label,一张强势的图片。
思路
监听用户的输入,输入a开始计时,输入z结束计时。
代码
@interface ViewController ()<NSTextFieldDelegate>
@property (weak) IBOutlet NSTextField *textField;
@property (weak) IBOutlet NSTextField *label;
@property (nonatomic ,strong) NSTimer *timer;
@property (nonatomic ,assign) float hundredthSecond;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
_hundredthSecond = 0;
self.timer = [NSTimer scheduledTimerWithTimeInterval:0.01 repeats:YES block:^(NSTimer * _Nonnull timer) {
_hundredthSecond ++;
//NSLog(@"开始了%f", hundredthSecond);
self.label.stringValue = [NSString stringWithFormat:@"已耗时:%.2f秒", _hundredthSecond / 100];
}];
self.timer.fireDate = [NSDate distantFuture];
}
- (void)controlTextDidChange:(NSNotification *)notification {
NSTextField *textField = [notification object];
//NSLog(@"controlTextDidChange: stringValue == %@", [textField stringValue]);
NSString *str = textField.stringValue.lowercaseString;
// 输入“a”开始计时
if (str.length > 0 && [[str substringFromIndex:str.length-1] isEqualToString:@"a"]) {
_hundredthSecond = 0;
// 开启timer
self.timer.fireDate = [NSDate distantPast];
}
// 输入“z”结束计时
if (str.length > 0 && [[str substringFromIndex:str.length-1] isEqualToString:@"z"]) {
// 结束timer
self.timer.fireDate = [NSDate distantFuture];
// 后26个字母正确则完成
if (str.length >= 26 && [[[str lowercaseString] substringFromIndex:str.length - 26] isEqualToString:@"abcdefghijklmnopqrstuvwxyz"]) {
}else {
NSLog(@"未正确输入26个字母");
self.label.stringValue = [NSString stringWithFormat:@"未正确输入26个字母(耗时:%.2f)", _hundredthSecond / 100];
}
_hundredthSecond = 0;
}
}
我的最好成绩
不得不说,这手速相当快了,不负单身二十余年。
网友评论
打字完成后,按delete逐个删除时候,删除到A,会重新判断记录时间。
没错,我就是那个较真儿程序猿。