CalculatorViewController.m 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601
  1. #import "CalculatorViewController.h"
  2. #import <Masonry.h>
  3. #import "connectDeviceManager.h"
  4. #import "RSATool.h"
  5. #import "customToastVew.h"
  6. @interface CalculatorViewController ()
  7. {
  8. UIView *bgView;/*引导视图*/
  9. }
  10. @property(nonatomic,copy)NSMutableString *curKeyToForgetPwd;//特殊符号进入忘记密码
  11. @end
  12. @implementation CalculatorViewController
  13. @synthesize pwd;
  14. #define BUTTON
  15. - (void)viewDidLoad {
  16. [super viewDidLoad];
  17. // Do any additional setup after loading the view, typically from a nib.
  18. self.view.backgroundColor=[UIColor blackColor];
  19. CGFloat mWidth=self.view.frame.size.width;
  20. CGFloat mHieght=self.view.frame.size.height;
  21. //加载button
  22. [self loadButtons:mWidth Hight:mHieght];
  23. //加载textField
  24. [self loadTextField:mWidth Hight:mHieght];
  25. //初始化Calculator
  26. _cl=[[Calculator alloc]init];
  27. /*加载引导视图*/
  28. BOOL haveOpenMask = [HWDataManager getBoolWithKey:Const_Mask_View_Open_Calcuator_Tips];
  29. if (haveOpenMask == NO){
  30. [self addGuideView];
  31. }
  32. [[netWorkManager shareInstance] RefreshThridMsg];
  33. _curKeyToForgetPwd = [NSMutableString new];
  34. }
  35. - (void)addGuideView{
  36. bgView = [[UIView alloc] init];
  37. [bgView setBackgroundColor:HW000000Color60];
  38. [self.view addSubview:bgView];
  39. [bgView mas_makeConstraints:^(MASConstraintMaker *make) {
  40. make.left.mas_equalTo(0);
  41. make.bottom.mas_equalTo(0);
  42. make.right.mas_equalTo(0);
  43. make.top.mas_equalTo(0);
  44. }];
  45. /*箭头视图*/
  46. UIImageView *flagImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"guide_open_calcu_flag1"]];
  47. [bgView addSubview:flagImageView];
  48. [flagImageView mas_makeConstraints:^(MASConstraintMaker *make) {
  49. make.right.mas_equalTo(-118.f);
  50. make.height.mas_equalTo(67);
  51. make.width.mas_equalTo(22);
  52. make.top.equalTo(_TF.mas_centerY).offset(40);
  53. }];
  54. /*不可点击btn*/
  55. UIButton *unableBtn = [[UIButton alloc] init];
  56. unableBtn.frame = CGRectMake(0, 0, 295, 64);
  57. NSString * curStr = NSLocalizedString(@"guide_set_open_calcula_guide_tips",nil);
  58. CGFloat curHeight = [curStr boundingRectWithSize:CGSizeMake(295 - 20 , 1000) options:(NSStringDrawingUsesLineFragmentOrigin) attributes:@{NSFontAttributeName:[UIFont boldSystemFontOfSize:14.f]} context:nil].size.height;
  59. if(curHeight < 50){
  60. curHeight = 50;
  61. }
  62. else{
  63. curHeight += 20;
  64. }
  65. // gradient
  66. CAGradientLayer *gl = [CAGradientLayer layer];
  67. gl.frame = CGRectMake(0,0,295,curHeight);
  68. gl.startPoint = CGPointMake(0, 0.5);
  69. gl.endPoint = CGPointMake(1, 0.5);
  70. gl.colors = @[(__bridge id)HW0CDEFDColor.CGColor, (__bridge id)HW058DFBColor.CGColor];
  71. gl.locations = @[@(0), @(1.0f)];
  72. [unableBtn.layer addSublayer:gl];
  73. [unableBtn setUserInteractionEnabled:NO];
  74. [unableBtn setTitle:curStr forState:(UIControlStateNormal)];
  75. [unableBtn setTitleColor:[UIColor whiteColor] forState:(UIControlStateNormal)];
  76. [unableBtn.titleLabel setFont:[UIFont systemFontOfSize:14.f]];
  77. [unableBtn.titleLabel setNumberOfLines:0];
  78. [unableBtn.layer setCornerRadius:curHeight/2.0];
  79. unableBtn.clipsToBounds = YES;
  80. [bgView addSubview:unableBtn];
  81. [unableBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  82. make.right.mas_equalTo(-20*AUTOSCALE);
  83. make.width.mas_equalTo(295);
  84. make.top.equalTo(flagImageView.mas_bottom).offset(-8);
  85. make.height.mas_equalTo(curHeight);
  86. }];
  87. unableBtn.contentEdgeInsets = UIEdgeInsetsMake(0,10, 0, 10);
  88. UIButton *knowBtn = [[UIButton alloc] init];
  89. [knowBtn setBackgroundColor:[UIColor clearColor]];
  90. [knowBtn.layer setCornerRadius:18.f];
  91. [knowBtn.layer setBorderColor:HWFFFFFFColor.CGColor];
  92. [knowBtn.layer setBorderWidth:1];
  93. [knowBtn setTitle:NSLocalizedString(@"guide_set_pwd_guide_know",nil) forState:(UIControlStateNormal)];
  94. [knowBtn setTitleColor:[UIColor whiteColor] forState:(UIControlStateNormal)];
  95. [knowBtn.titleLabel setFont:[UIFont systemFontOfSize:16]];
  96. [bgView addSubview:knowBtn];
  97. [knowBtn mas_makeConstraints:^(MASConstraintMaker *make) {
  98. make.right.mas_equalTo(-29*AUTOSCALE);
  99. make.width.mas_equalTo(120);
  100. make.top.equalTo(unableBtn.mas_bottom).offset(15);
  101. make.height.mas_equalTo(36.f);
  102. }];
  103. [knowBtn addTarget:self
  104. action:@selector(knowBtnPressed)
  105. forControlEvents:(UIControlEventTouchUpInside)];
  106. }
  107. - (void)knowBtnPressed{
  108. [bgView removeFromSuperview];
  109. [HWDataManager setBoolWithKey:Const_Mask_View_Open_Calcuator_Tips value:YES];
  110. }
  111. #pragma mark ----样式设置----
  112. -(void)loadButtons:(CGFloat)mWidth Hight:(CGFloat)mHieght{
  113. CGFloat x=1;
  114. CGFloat y=mHieght-(((mWidth-5)/4)*5)-1 - 60;
  115. if(mHieght == 736 || mHieght == 667){//修改 8P手机UI问题
  116. y += 40;
  117. }
  118. NSArray *buttonArray=@[@"C",@"+/-",@"%",@"÷",@"7",@"8",@"9",@"×",@"4",@"5",@"6",@"—",@"1",@"2",@"3",@"+",@"0",@".",@"="];
  119. NSInteger buttonArrayID=0;
  120. for (int i=0; i<5; i++) {
  121. for (int j=0; j<(i==4?3:4); j++) {
  122. UIButton *button=[UIButton buttonWithType:UIButtonTypeCustom];
  123. button.frame=CGRectMake(x, y, (buttonArrayID==16?(mWidth-5)/4*2+1 - 13:(mWidth-5)/4 - 13), (mWidth-5)/4 - 13);
  124. button.layer.cornerRadius = ((mWidth-5)/4 - 13)/2;
  125. [button setTitle:[buttonArray objectAtIndex:buttonArrayID] forState:UIControlStateNormal];
  126. button.titleLabel.font=[UIFont systemFontOfSize:40];
  127. button.tag=100+buttonArrayID;
  128. [button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
  129. if (buttonArrayID%4==3||buttonArrayID==[buttonArray count]-1) {
  130. button.backgroundColor=HWEFA23BColor;
  131. }else if(buttonArrayID==16){
  132. //设置 0 Button 文字向右对齐
  133. [button setTitleEdgeInsets:UIEdgeInsetsMake(0, 0, 0, (mWidth-5)/4)];
  134. x+=((mWidth-5)/4)+1;
  135. button.backgroundColor=HW333333Color9;
  136. }else if(buttonArrayID<3){
  137. button.backgroundColor=HWA5A5A5Color;
  138. [button setTitleColor: [UIColor blackColor] forState:UIControlStateNormal] ;
  139. }else{
  140. button.backgroundColor=HW333333Color9;
  141. }
  142. [button addTarget:self action:@selector(buttonAction:) forControlEvents:UIControlEventTouchUpInside];
  143. [self.view addSubview:button];
  144. x+=((mWidth-5)/4)+1;
  145. buttonArrayID++;
  146. }
  147. x=1;
  148. y+=((mWidth-5)/4)+1;
  149. }
  150. }
  151. -(void)loadTextField:(CGFloat)mWidth Hight:(CGFloat)mHieght{
  152. CGFloat adjust_X = 20.0;
  153. _TF=[[UITextField alloc]initWithFrame:CGRectMake(10, 50, mWidth-20- adjust_X, mHieght-(((mWidth-5)/4)*5)-50)];
  154. _TF.tag=1000;
  155. _TF.textColor=[UIColor whiteColor];
  156. [_TF setEnabled:NO];
  157. _TF.textAlignment=NSTextAlignmentRight;
  158. _TF.adjustsFontSizeToFitWidth=YES;//自适应宽度
  159. _TF.text=@"0";
  160. _TF.font=[UIFont fontWithName:@"HelveticaNeue-Thin" size:80];
  161. [self.view addSubview:_TF];
  162. }
  163. #pragma mark ----button响应----
  164. //button响应方法
  165. -(void)buttonAction:(UIButton *)sender{
  166. [self removeTextFieldFormat];
  167. switch (sender.tag) {
  168. case 100:
  169. //清除
  170. if ([sender.titleLabel.text isEqualToString:@"AC"]) {
  171. [self buttonSymbolStyleReduction:sender];
  172. }
  173. self.TF.text=@"0";
  174. [sender setTitle:@"AC" forState:UIControlStateNormal];
  175. [self.cl calculatorEmpty];
  176. _curKeyToForgetPwd = [NSMutableString new];
  177. break;
  178. case 101:
  179. //正负转换
  180. [self getPlusMinus:self.TF.text];
  181. _curKeyToForgetPwd = [NSMutableString new];
  182. break;
  183. case 102:
  184. //百分比
  185. [self getPercentage:self.TF.text];
  186. break;
  187. case 103:
  188. //除
  189. [self execute];
  190. self.cl.exType=1;
  191. [self buttonSymbolStyleReduction:sender];
  192. [self buttonSymbolStyle:sender];
  193. _curKeyToForgetPwd = [NSMutableString new];
  194. break;
  195. case 107:
  196. //乘
  197. [self execute];
  198. self.cl.exType=2;
  199. [self buttonSymbolStyleReduction:sender];
  200. [self buttonSymbolStyle:sender];
  201. _curKeyToForgetPwd = [NSMutableString new];
  202. break;
  203. case 111:
  204. //减
  205. [self execute];
  206. self.cl.exType=3;
  207. [self buttonSymbolStyleReduction:sender];
  208. [self buttonSymbolStyle:sender];
  209. _curKeyToForgetPwd = [NSMutableString new];
  210. break;
  211. case 115:
  212. //加
  213. [self execute];
  214. self.cl.exType=4;
  215. [self buttonSymbolStyleReduction:sender];
  216. [self buttonSymbolStyle:sender];
  217. _curKeyToForgetPwd = [NSMutableString new];
  218. break;
  219. case 117:
  220. //小数点
  221. [self decimalPoint:self.TF Button:sender];
  222. _curKeyToForgetPwd = [NSMutableString new];
  223. break;
  224. case 118:
  225. //等
  226. [self didClickEqualbuttonFun];
  227. [self execute];
  228. self.cl.exType=0;
  229. [self buttonSymbolStyleReduction:sender];
  230. // self.TF.text=@"0";
  231. break;
  232. default:
  233. //判断清空计数
  234. if (self.emptyCount!=0) {
  235. self.TF.text=@"";
  236. self.emptyCount=0;
  237. }
  238. [self buttonSymbolStyleReduction:sender];
  239. [(UIButton *)[self.view viewWithTag:100] setTitle:@"C" forState:UIControlStateNormal];
  240. [self textFieldValueChange:self.TF Button:sender];
  241. _curKeyToForgetPwd = [NSMutableString new];
  242. break;
  243. }
  244. [self addTextFieldFormat];
  245. HLog(@"输入密码:%@",_curKeyToForgetPwd);
  246. }
  247. #pragma mark ----样式处理----
  248. //添加点击运算符号button样式方法
  249. -(void)buttonSymbolStyle:(UIButton *)sender{
  250. [sender.layer setBorderWidth:2];
  251. }
  252. //还原运算符号button样式方法
  253. -(void)buttonSymbolStyleReduction:(UIButton *)sender{
  254. [((UIButton *)[self.view viewWithTag:103]).layer setBorderWidth:0] ;
  255. [((UIButton *)[self.view viewWithTag:107]).layer setBorderWidth:0] ;
  256. [((UIButton *)[self.view viewWithTag:111]).layer setBorderWidth:0] ;
  257. [((UIButton *)[self.view viewWithTag:115]).layer setBorderWidth:0] ;
  258. [sender.layer setBorderWidth:0];
  259. }
  260. //添加textfield格式
  261. -(void)addTextFieldFormat{
  262. NSMutableString *mutableStr=[NSMutableString stringWithString:self.TF.text];
  263. NSInteger mutableStrLength=mutableStr.length;
  264. //判断是否包含小数点 如果包含获取小数点左边的数字个数mutableStrLength
  265. if ([mutableStr containsString:@"."]) {
  266. mutableStrLength=[self getPointLeft:mutableStr];
  267. }else{
  268. mutableStrLength=[self getNumberCount:mutableStr];
  269. }
  270. for(int i=3 ; i<mutableStrLength ; i++ ){
  271. //每三个数字添加一次分隔符
  272. if (i%3==0) {
  273. //添加分隔逗号
  274. if (mutableStrLength>i) {
  275. NSInteger index=mutableStr.length-i-(mutableStr.length-mutableStrLength);
  276. NSRange range=NSMakeRange(index-1, 1);
  277. //如果上一个不是负号则添加分隔逗号
  278. if (![[mutableStr substringWithRange:range]isEqualToString:@"-"]) {
  279. //如果第一个是负号 分隔符位置+1
  280. if ([[mutableStr substringWithRange:NSMakeRange(0, 1)]isEqualToString:@"-"]) {
  281. [mutableStr insertString:@"," atIndex:index+1];
  282. }else{
  283. [mutableStr insertString:@"," atIndex:index];
  284. }
  285. }else{
  286. [mutableStr insertString:@"," atIndex:index+1];
  287. }
  288. }
  289. }
  290. }
  291. //如果textfield为空时 自动补0
  292. if ([mutableStr isEqualToString:@""]) {
  293. mutableStr=[NSMutableString stringWithString:@"0"];
  294. }
  295. self.TF.text=mutableStr;
  296. }
  297. //去除textfield格式
  298. -(void)removeTextFieldFormat{
  299. if ([self.TF.text isEqualToString:@"0"]) {
  300. self.TF.text=@"";
  301. }
  302. self.TF.text=[self.TF.text stringByReplacingOccurrencesOfString:@"," withString:@""];
  303. }
  304. //textField内容处理方法 限制输入长度 添加分隔符
  305. -(void)textFieldValueChange:(UITextField *)tf Button:(UIButton *)sender{
  306. NSString *buttonTitleStr=sender.titleLabel.text;
  307. if ([self getNumberCount:tf.text]<9) {
  308. tf.text=[tf.text stringByAppendingString:buttonTitleStr];
  309. }
  310. NSLog(@"tf.text = %@",tf.text);
  311. if(tf.text.length == 4){
  312. [self verifyPwdFun:tf.text];
  313. }
  314. // if ([tf.text isEqualToString:pwd]){
  315. // [connectDeviceManager shareInstance].isFirstInputPwdDone = YES;
  316. //
  317. // [[NSNotificationCenter defaultCenter] postNotificationName:ShowImgAndVoiceNotification object:nil];
  318. //
  319. // [self.view removeFromSuperview];
  320. // }
  321. }
  322. #pragma mark 验证密码是否正确
  323. -(void)verifyPwdFun:(NSString*)text{
  324. /*先判断本地有无设备 无设备时需要先扫码添加设备*/
  325. NSDictionary *deviceDict = [HWDataManager getObjectWithKey:Const_Have_Add_Device];
  326. if (deviceDict && [[deviceDict allKeys] containsObject:Const_Have_Add_Device_SN]){
  327. //有设备了先去做链接准备 // 80bec9c5
  328. NSString *SNStr = deviceDict[@"Const_Have_Add_Device_SN"];
  329. if(SNStr){
  330. NSString *curPwd = nil;
  331. NSString*desPwdStr = nil;
  332. if(ksharedAppDelegate.DeviceThirdIdMod.data.password
  333. && ksharedAppDelegate.DeviceThirdIdMod.data.password.length > 0){
  334. curPwd = ksharedAppDelegate.DeviceThirdIdMod.data.password;
  335. desPwdStr = [RSATool AES128Decrypt:curPwd key:AESCODEKEEYY];
  336. }
  337. else{
  338. if(deviceDict && [[deviceDict allKeys] containsObject:Const_Have_Add_Device_PWD])
  339. {
  340. desPwdStr = deviceDict[Const_Have_Add_Device_PWD];
  341. }
  342. }
  343. if ([desPwdStr isEqualToString:text]){
  344. HLog(@"输入密码正确")
  345. if([AFNetworkReachabilityManager sharedManager].networkReachabilityStatus == AFNetworkReachabilityStatusNotReachable)
  346. {
  347. //[[iToast makeText:NSLocalizedString(@"phone_network_fail_Tips",nil)] show];
  348. customToastVew *view = [customToastVew makeText:NSLocalizedString(@"phone_network_fail_Tips",nil)];
  349. [view show];
  350. [self.view addSubview:view];
  351. return;
  352. }
  353. ksharedAppDelegate.isFirstInputPwdDone = YES;
  354. ksharedAppDelegate.isDidShowPwdType = NO;
  355. [self.view removeFromSuperview];
  356. //被别的设备挤下线 重新链接 如果是链接中 走这个函数会被return
  357. if(![webRtcManager shareManager].isWaitShowLogoutAlert){
  358. [[webRtcManager shareManager] beginToLinkWebRtcFun];
  359. dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
  360. [[NSNotificationCenter defaultCenter] postNotificationName:didInputPWDNotification object:nil];
  361. });
  362. }
  363. }
  364. }
  365. }
  366. }
  367. //小数点限制方法
  368. -(void)decimalPoint:(UITextField *)tf Button:(UIButton *)sender{
  369. //判断是否已经输入小数点
  370. if (![tf.text containsString:@"."]) {
  371. tf.text=[tf.text stringByAppendingString:sender.titleLabel.text];
  372. }
  373. //判断是否直接输入小数点
  374. if([self.TF.text isEqualToString:@"."]){
  375. self.TF.text=@"0.";
  376. }
  377. }
  378. //获取小数点左边数字个数
  379. -(NSInteger)getPointLeft:(NSString *)str{
  380. NSInteger pointLeft=str.length;
  381. //判断是否包含小数点 如果包含获取小数点左边的数字个数
  382. if ([str containsString:@"."]) {
  383. NSRange range = [str rangeOfString:@"."];
  384. NSLog(@"getPointLeft=%ld",range.location);
  385. pointLeft=range.location;
  386. }
  387. //判断是否包含负号
  388. if ([str containsString:@"-"]) {
  389. pointLeft-=1;
  390. }
  391. return pointLeft;
  392. }
  393. //获取小数点右边数字个数
  394. -(NSInteger)getPointRight:(NSString *)str{
  395. NSInteger pointRight=0;
  396. //判断是否包含小数点 如果包含获取小数点右边的数字个数
  397. if ([str containsString:@"."]) {
  398. NSRange range = [str rangeOfString:@"."];
  399. NSLog(@"getPointRight=%ld",str.length- range.location);
  400. pointRight=str.length- range.location;
  401. }
  402. return pointRight;
  403. }
  404. //获取纯数字个数
  405. -(NSInteger)getNumberCount:(NSString *)str{
  406. NSInteger numberCount=str.length;
  407. //判断是否包含小数点
  408. if ([str containsString:@"."]) {
  409. numberCount-=1;
  410. }
  411. //判断是否包含负号
  412. if ([str containsString:@"-"]) {
  413. numberCount-=1;
  414. }
  415. //判断是否包含分隔逗号
  416. if ([str containsString:@","]) {
  417. if ([self getPointLeft:str]<5) {
  418. numberCount-=1;
  419. }else{
  420. numberCount-=2;
  421. }
  422. }
  423. return numberCount;
  424. }
  425. //UIColor 转UIImage
  426. - (UIImage*) createImageWithColor: (UIColor*) color{
  427. CGRect rect=CGRectMake(0.0f, 0.0f, 1.0f, 1.0f);
  428. UIGraphicsBeginImageContext(rect.size);
  429. CGContextRef context = UIGraphicsGetCurrentContext();
  430. CGContextSetFillColorWithColor(context, [color CGColor]);
  431. CGContextFillRect(context, rect);
  432. UIImage *theImage = UIGraphicsGetImageFromCurrentImageContext();
  433. UIGraphicsEndImageContext();
  434. return theImage;
  435. }
  436. - (void)didReceiveMemoryWarning {
  437. [super didReceiveMemoryWarning];
  438. // Dispose of any resources that can be recreated.
  439. }
  440. #pragma mark ----运算----
  441. //正负数转换
  442. -(void)getPlusMinus:(NSString *)number{
  443. self.TF.text=[self.cl getPlusMinus:self.TF.text];
  444. [self textFieldLastValue];
  445. }
  446. //ios计算器bug
  447. //2 * 9 ÷ 目前等于18 转换正负数会变为-0
  448. //计算百分比
  449. -(void)getPercentage:(NSString *)number{
  450. //记录特殊情况--忘记密码输入
  451. if(!number || number.intValue == 0){
  452. if(!_curKeyToForgetPwd || _curKeyToForgetPwd.length == 0){
  453. _curKeyToForgetPwd = [[NSMutableString alloc] initWithFormat:@"%@",@"%"];
  454. //HLog(@"11:%@",_curKeyToForgetPwd);
  455. }
  456. else if(_curKeyToForgetPwd.length == 3){
  457. [_curKeyToForgetPwd appendString:@"%"];
  458. [self checkOrderToForgetPwdFun];
  459. }
  460. }
  461. number=[NSString stringWithFormat:@"%f",[number doubleValue]/100];
  462. //去除floa转换后后面多余的0
  463. self.TF.text = [NSString stringFloatHandle:number];
  464. [self textFieldLastValue];
  465. }
  466. //ios计算器bug
  467. //5 * 点击% 变成0.05 再点6 等于30 而不是0.3
  468. //判断textfield上的内容是否为上一次的运算结果 并进行赋值操作 以保证连续运算时执行以上两种操作后的结果能够正确参与运算
  469. -(void)textFieldLastValue{
  470. //如果number1和result都不为空 number2为空 并且清空计数为1(说明刚刚点击过运算符号button) 说明当前textfield上的内容为上一次的运算结果
  471. if (self.cl.number1 != nil) {
  472. if (self.cl.result != nil) {
  473. if (self.cl.number2==nil) {
  474. if (self.emptyCount==1) {
  475. self.cl.number1=self.TF.text;//将转换后的值赋给number1,以便下次运算使用
  476. }
  477. }
  478. }
  479. }
  480. }
  481. //四则运算
  482. -(void)execute{
  483. if(self.emptyCount==0){
  484. if(self.cl.number1 ==nil){
  485. self.cl.number1=self.TF.text;
  486. }else{
  487. self.cl.number2=self.TF.text;
  488. }
  489. //如果number1和number2都不为空 进行计算
  490. if (self.cl.number2 != nil && self.cl.number1 != nil) {
  491. //判断除数是否为0
  492. if([self.cl.number2 isEqualToString:@""]&&self.cl.exType==1){
  493. self.TF.text=@"错误";
  494. }else{
  495. self.TF.text=[self.cl Execute];
  496. }
  497. }
  498. //清空计数
  499. self.emptyCount=1;
  500. }
  501. }
  502. #pragma mark 按=号
  503. - (void)didClickEqualbuttonFun
  504. {
  505. //记录特殊情况--忘记密码输入
  506. //HLog(@"22:%@",self.TF.text)
  507. if(!self.TF.text
  508. || self.TF.text.length == 0
  509. || [self.TF.text isEqualToString:@"0"]){
  510. if(_curKeyToForgetPwd
  511. && _curKeyToForgetPwd.length >=1
  512. && [keyToForgetPwd rangeOfString:_curKeyToForgetPwd].location != NSNotFound
  513. ){
  514. [_curKeyToForgetPwd appendString:@"="];
  515. }
  516. }
  517. }
  518. #pragma mark 验证是否为忘记密码指令
  519. - (void)checkOrderToForgetPwdFun
  520. {
  521. if([_curKeyToForgetPwd isEqualToString:keyToForgetPwd]){
  522. [[NSNotificationCenter defaultCenter] postNotificationName:forgetPwdNotification object:nil];
  523. }
  524. _curKeyToForgetPwd = [NSMutableString new];
  525. }
  526. @end