2013-03-04 7 views

답변

1

(모든 알파벳, 단지 A-Z) :

- (void)keyDown:(NSEvent *)theEvent 
{ 
    NSString * const character = [theEvent charactersIgnoringModifiers]; 
    if ([character length] > 0) 
    { 
     unichar c = [character characterAtIndex:0]; 
     NSCharacterSet *letters = [NSCharacterSet letterCharacterSet]; 
     if ([letters characterIsMember:c]) 
     { 
      NSLog(@"that's a letter!"); 
     } 
    } 
} 

자주는 인스턴스 변수로 letters를 저장하기 위해 지불 할이 코드를 호출하는 경우.

+0

감사합니다. 하지만 문자 길이가 0보다 큰지 확인하는 이유는 무엇입니까? 항상 그렇지 않습니다 (keyDown이 트리거 된 경우). 아니면 단지 방어 코딩의 예입니까? – Wesley

+0

@ 웨슬리 예, 정확하게; 그것은 순전히 방어 적입니다. – trojanfoe