private Pointer findDefaultMode(final Pointer runLoop) { final Pointer modes = cf.CFRunLoopCopyAllModes(runLoop); if (modes != Pointer.NULL) { final int modesCount = cf.CFArrayGetCount(modes).intValue(); for (int i = 0; i < modesCount; i++) { final Pointer mode = cf.CFArrayGetValueAtIndex(modes, new NativeLong(i)); if (mode != Pointer.NULL && DEFAULT_RUN_LOOP_MODE.equals(cf.CFStringGetCStringPtr(mode, ENC_MAC_ROMAN))) { return mode; } } } return null; }