+ /* non character keys */
+ if( key == NSUpArrowFunctionKey )
+ [tempString appendString:@"Up"];
+ else if( key == NSDownArrowFunctionKey )
+ [tempString appendString:@"Down"];
+ else if( key == NSLeftArrowFunctionKey )
+ [tempString appendString:@"Left"];
+ else if( key == NSRightArrowFunctionKey )
+ [tempString appendString:@"Right"];
+ else if( key == NSF1FunctionKey )
+ [tempString appendString:@"F1"];
+ else if( key == NSF2FunctionKey )
+ [tempString appendString:@"F2"];
+ else if( key == NSF3FunctionKey )
+ [tempString appendString:@"F3"];
+ else if( key == NSF4FunctionKey )
+ [tempString appendString:@"F4"];
+ else if( key == NSF5FunctionKey )
+ [tempString appendString:@"F5"];
+ else if( key == NSF6FunctionKey )
+ [tempString appendString:@"F6"];
+ else if( key == NSF7FunctionKey )
+ [tempString appendString:@"F7"];
+ else if( key == NSF8FunctionKey )
+ [tempString appendString:@"F8"];
+ else if( key == NSF9FunctionKey )
+ [tempString appendString:@"F9"];
+ else if( key == NSF10FunctionKey )
+ [tempString appendString:@"F10"];
+ else if( key == NSF11FunctionKey )
+ [tempString appendString:@"F11"];
+ else if( key == NSF12FunctionKey )
+ [tempString appendString:@"F12"];
+ else if( key == NSInsertFunctionKey )
+ [tempString appendString:@"Insert"];
+ else if( key == NSHomeFunctionKey )
+ [tempString appendString:@"Home"];
+ else if( key == NSEndFunctionKey )
+ [tempString appendString:@"End"];
+ else if( key == NSPageUpFunctionKey )
+ [tempString appendString:@"Pageup"];
+ else if( key == NSPageDownFunctionKey )
+ [tempString appendString:@"Pagedown"];
+ else if( key == NSMenuFunctionKey )
+ [tempString appendString:@"Menu"];
+ else if( key == NSTabCharacter )
+ [tempString appendString:@"Tab"];
+ else if( key == NSCarriageReturnCharacter )
+ [tempString appendString:@"Enter"];
+ else if( key == NSEnterCharacter )
+ [tempString appendString:@"Enter"];
+ else if( key == NSDeleteCharacter )
+ [tempString appendString:@"Delete"];
+ else if( key == NSBackspaceCharacter )
+ [tempString appendString:@"Backspace"];
+ else if (![[[o_theEvent charactersIgnoringModifiers] lowercaseString] isEqualToString:@""]) //plain characters