1
//
2
//
AppController.m
3
//
TypingTutor
4
//
5
//
Created by b1mobile on 3/3/11.
6
//
Copyright 2011 __MyCompanyName__. All rights reserved.
7
//
8
9
#import
"
AppController.h
"
10
#import
"
BigLetterView.h
"
11
12
#define
MAX_COUNT (100)
13
//
#define COUNT_STEP (5)
14
15
@implementation AppController
16
17
-
(id)init
18
{
19
[super init];
20
21
letters
=
[[NSArray alloc] initWithObjects:
@"
a
"
,
@"
s
"
,
@"
d
"
,
@"
f
"
,
@"
j
"
,
@"
k
"
,
@"
l
"
,
@"
;
"
, nil];
22
srandom(time(NULL));
23
stepSize
=
5
;
24
return
self;
25
}
26
27
-
(
void
)awakeFromNib
28
{
29
[self showAnotherLetter];
30
}
31
32
-
(
void
)resetCount
33
{
34
[self willChangeValueForKey:
@"
count
"
];
35
count
=
0
;
36
[self didChangeValueForKey:
@"
count
"
];
37
}
38
39
-
(
void
)incrementCount
40
{
41
[self willChangeValueForKey:
@"
count
"
];
42
count
=
count
+
stepSize;
43
if
(count
>
MAX_COUNT)
44
{
45
count
=
MAX_COUNT;
46
}
47
[self didChangeValueForKey:
@"
count
"
];
48
}
49
50
-
(
void
)showAnotherLetter
51
{
52
int
x
=
lastIndex;
53
while
(x
==
lastIndex)
54
{
55
x
=
random()
%
[letters count];
56
}
57
lastIndex
=
x;
58
[outLetterView setString:[letters objectAtIndex:x]];
59
60
[self resetCount];
61
}
62
63
-
(IBAction)stopGo:(id)sender
64
{
65
if
(timer
==
nil)
66
{
67
NSLog(
@"
Starting
"
);
68
69
timer
=
[[NSTimer scheduledTimerWithTimeInterval:
1
target:self selector:@selector(checkThem) userInfo:nil repeats:YES] retain];
70
}
71
else
72
{
73
NSLog(
@"
Stopping
"
);
74
[timer invalidate];
75
[timer release];
76
timer
=
nil;
77
}
78
}
79
80
-
(
void
)checkThem:(NSTimer
*
)aTimer
81
{
82
if
([[inLetterView
string
] isEqual:[outLetterView
string
]])
83
{
84
[self showAnotherLetter];
85
}
86
if
(count
==
MAX_COUNT)
87
{
88
NSBeep();
89
[self resetCount];
90
}
91
else
92
{
93
[self incrementCount];
94
}
95
}
96
97
-
(IBAction)showSpeedSheet:(id)sender
98
{
99
[NSApp beginSheet:speedSheet modalForWindow:[inLetterView window] modalDelegate:nil didEndSelector:NULL contextInfo:NULL];
100
}
101
102
-
(IBAction)endSpeedSheet:(id)sender
103
{
104
[NSApp endSheet:speedSheet];
105
[speedSheet orderOut:sender];
106
}
107
108
@end
转载于:https://www.cnblogs.com/zhtf2014/archive/2011/03/08/1977484.html
转载请注明原文地址: https://win8.8miu.com/read-1450007.html