Frage

Ich Schreibe ein C-Programm für mac, und ich muss dem Benutzer erlauben, zu wählen, eine Anwendung zu senden, die ein apple-event an.Ich kann ein Navigationsfenster, mit NavCreateChooseFileDialog(), aber ich kann es nicht wieder zu aktivieren .app-Dateien.Wenn ich die Typen mit NavDialogSetFilterTypeIdentifiers, es wird nur lassen Sie mich wählen Sie Anwendungen wie MS Office,, dass nicht haben .app in der Ordner-name.Alles andere ist ausgegraut.

Irgendwelche Ideen?

War es hilfreich?

Lösung

Stellen Sie sicher, dass die Flagge kNavSupportPackages in inOptions.optionFlags für NavCreateChooseFileDialog, und setzen 'APPL' in der Typen-Liste (vielleicht auch noch verwenden, param statt NavDialogSetFilterTypeIdentifiers (),, dass Weg werden Sie ausführen, auf 10.3-) und Sie sollten gut sein zu gehen, ich versuchte es einfach.

Alternativ, wenn Sie haben nichts dagegen, mit Kakao, die Sie verwenden können -[NSOpenPanel runModalForTypes:[NSArray arrayWithObjects:@"app", null]] (was auch die Listen nicht.app-Anwendungen), und dann bist du nur ein FSPathMakeRef((UInt8*)[Pfad fileSystemRepresentation], &fsRef, NULL);Weg von einer FSRef.

Denken Sie daran, dass in jedem Fall, die Datei, die Sie erhalten möglicherweise einen alias, so haben Sie zu versuchen und zu beheben Aliase.

Andere Tipps

Beachten Sie, dass .app Bündel Verzeichnisse sind, so dass Sie irgendeine Art von allow-Verzeichnisse (oder, wahrscheinlicher, enable-Bundles) Option müssen ermöglichen.

Es tut mir leid, dass ich nicht mehr spezifische Hilfe anbieten können. Ich begann mit Kohlenstoff, aber hat nie Navigation Services berühren.

Dies funktioniert für mich:

NSOpenPanel * panel = [ NSOpenPanel openPanel ] ;
panel.allowedFileTypes = @[ (__bridge id)kUTTypeApplication ] ;

[ panel runModal ] ;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top