今天偶然发现mac的应用程序和iphone一样,都是用的oc写的,然后就按照iphone的方式制作了一个小小的加班计,功能很简单,就三个按钮,主要是用来记录平时加班的,这里给出源码参考。
Demo源码下载
GitHub地址:https://github.com/DamonHu/jiabanji
GitOSC下载地址:http://git.oschina.net/DamonHoo/jiabanji
Demo程序下载
百度云盘下载:链接: http://pan.baidu.com/s/1dEAcslN 密码: 8pqr
实现功能:
1.不同月份创建不同的文档便于管理
2.记录平时加班
3.记录节假日加班情况
源码是这样的:
在AppDelegate加上下面这句话,是为了点击左上角的叉号退出程序用的
- (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)sender { return YES; }
- (void)viewDidLoad { [super viewDidLoad]; NSButton *button = [[NSButton alloc]initWithFrame:NSRectFromCGRect(CGRectMake(180, 150, 100, 50))]; [button setImage:[NSImage imageNamed:@"jiaban.png"]]; [button setTarget:self]; [button setTag:1]; [button setAction:@selector(addWorkTime:)]; [self.view addSubview:button]; NSButton *button2 = [[NSButton alloc]initWithFrame:NSRectFromCGRect(CGRectMake(80, 50, 110, 40))]; [button2 setTitle:@"节假日上班"]; [button2 setTarget:self]; [button2 setTag:2]; [button2 setAction:@selector(addWorkTime:)]; [self.view addSubview:button2]; NSButton *button3 = [[NSButton alloc]initWithFrame:NSRectFromCGRect(CGRectMake(280, 50, 110, 40))]; [button3 setTitle:@"节假日下班"]; [button3 setTarget:self]; [button3 setTag:3]; [button3 setAction:@selector(addWorkTime:)]; [self.view addSubview:button3]; // Do any additional setup after loading the view. } - (void)addWorkTime:(NSButton*)sender { NSDateFormatter *form=[[NSDateFormatter alloc]init]; [form setDateFormat:@"yyyy-MM"]; NSString *date=[form stringFromDate:[NSDate date]]; self.path=[NSString stringWithFormat:@"/Users/admin/%@.txt",date];//这里需要改为自己的主目录 NSFileManager *filemanager=[NSFileManager defaultManager]; if ([filemanager fileExistsAtPath:self.path]) { //NSLog(@"已经存在"); } else { NSData *data=[[NSString stringWithFormat:@"%@记录\n\n",date] dataUsingEncoding:NSUTF8StringEncoding]; bool succeed = [filemanager createFileAtPath:self.path contents:data attributes:nil]; if (succeed) { //NSLog(@"创建成功"); } else { //NSLog(@"创建失败"); NSAlert *alert = [[NSAlert alloc]init]; [alert addButtonWithTitle:@"确定"]; [alert setMessageText:@"创建文件失败"]; [alert setAlertStyle:NSWarningAlertStyle]; [alert runModal]; return; } } [self writeFile:sender.tag]; } -(void)writeFile:(NSInteger)tag { NSDateFormatter *formatter=[[NSDateFormatter alloc]init]; if (tag==1) { [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss EEEE\n"]; } else if (tag==2) { [formatter setDateFormat:@"\n\t\tyyyy-MM-dd EEEE\n上班时间:HH:mm:ss "]; } else if (tag==3) { [formatter setDateFormat:@" ==== 下班时间:HH:mm:ss\n\n"]; } NSString *timeStr=[formatter stringFromDate:[NSDate date]]; NSData *data=[timeStr dataUsingEncoding:NSUTF8StringEncoding]; NSFileHandle *handle=[NSFileHandle fileHandleForWritingAtPath:self.path]; [handle seekToEndOfFile]; [handle writeData:data]; [handle closeFile]; NSAlert *alert = [[NSAlert alloc]init]; [alert addButtonWithTitle:@"确定"]; [alert setMessageText:@"加班记录成功"]; [alert setAlertStyle:NSWarningAlertStyle]; [alert runModal]; }
2015-08-19续
add 增加了自定义mac用户的地址,这样就可以修改文件保存路径了
add 增加删除路径
就是增加了两个函数:
增加路径:
self.path = [[NSUserDefaults standardUserDefaults] stringForKey:@"txtpath"]; if ([self.path isEqualToString:@""]||!self.path) { self.textField=[[NSTextField alloc]initWithFrame:NSRectFromCGRect(CGRectMake(180, 230, 100, 30))]; [self.view addSubview:self.textField]; NSButton *button = [[NSButton alloc]initWithFrame:NSRectFromCGRect(CGRectMake(300, 230, 80, 30))]; [button setTag:10]; [button setTitle:@"保存"]; [button setTarget:self]; [button setAction:@selector(setAdminPath:)]; [self.view addSubview:button]; } -(void)setAdminPath:(NSButton*)sender { if ([self.textField.stringValue isEqualToString:@""]) { NSAlert *alert = [[NSAlert alloc]init]; [alert addButtonWithTitle:@"确定"]; [alert setMessageText:@"请输入mac用户名称"]; [alert setAlertStyle:NSWarningAlertStyle]; [alert runModal]; } else { self.path=self.textField.stringValue; [[NSUserDefaults standardUserDefaults] setValue:self.path forKey:@"txtpath"]; [sender setHidden:true]; [self.textField setHidden:true]; } }
删除路径:
-(void)clearAdminPath { [[NSUserDefaults standardUserDefaults] setValue:@"" forKey:@"txtpath"]; [self viewDidLoad]; }
版权属于:东哥笔记 - DongGe.org
本文链接:https://dongge.org/blog/215.html
自2017年12月26日起,『转载以及大段采集进行后续编辑』须注明本文标题和链接!否则禁止所有转载和采集行为!