The reason why you can't find the info is that it's a C API and it's not in Cocoa. The API you need to use is Text Input Sources Services. Try this sample:
#import <Foundation/Foundation.h>
#import <Carbon/Carbon.h>
int main(){
NSAutoreleasePool*pool=[[NSAutoreleasePool alloc] init];
NSDictionary*property=[NSDictionary dictionaryWithObject:(NSString*)kTISTypeKeyboardViewer
forKey:(NSString*)kTISPropertyInputSourceType];
NSArray*tisArray=(NSArray*)TISCreateInputSourceList((CFDictionaryRef)property,NO);
// tisArray usually only contains just one keyboard viewer
// in a rare case the user might have another viewer installed, beware
TISInputSourceRef keyboardViewer=(TISInputSourceRef)[tisArray objectAtIndex:0];
TISSelectInputSource(keyboardViewer);
CFRelease((CFTypeRef)tisArray);
[pool drain];
return 0;
}
It's a Core Foundation-type API, so if you know Cocoa the usage is similar; Core Foundation is basically a C API for NSObject
s. Mostly you can use toll-free bridging, see this SO question. You need to be careful when you retain/release them in a garbage-collected environment. TIS was introduced in 10.5; I don't know why Apple didn't introduce it as a Cocoa API back then.
Apparently they hadn't made up their mind to dispose of 64bit Carbon then.