I ended up using the pasteboard and CGEventCreateKeyboardEvent() to mimic the [cmd+v] keyboard shortcut for pasting.
Before activating my window, I record the previous application:
_previousApplication = [[notification userInfo] objectForKey:NSWorkspaceApplicationKey];
After I dismiss my window, I activate the previous application:
[_previousApplication activateWithOptions:NSApplicationActivateIgnoringOtherApps];
Then paste the NSString:
#define KEY_CODE_v ((CGKeyCode)9)
void DCPostCommandAndKey(CGKeyCode key) {
CGEventSourceRef source = CGEventSourceCreate(kCGEventSourceStateCombinedSessionState);
CGEventRef keyDown = CGEventCreateKeyboardEvent(source, key, TRUE);
CGEventSetFlags(keyDown, kCGEventFlagMaskCommand);
CGEventRef keyUp = CGEventCreateKeyboardEvent(source, key, FALSE);
CGEventPost(kCGAnnotatedSessionEventTap, keyDown);
CGEventPost(kCGAnnotatedSessionEventTap, keyUp);
CFRelease(keyUp);
CFRelease(keyDown);
CFRelease(source);
}
DCPostCommandAndKey(KEY_CODE_v);