UTIs and document types in Leopard

  • Dear list,

    Leopard seems to have moved from custom document type names to UTIs.
    Unfortunately this is an all or nothing approach, which often leads
    to a "nothing" approach. Reading the Leopard release notes I'm really
    confused though how UTIs should be used as document types.

    One problem I can't find an answer to is how to handle standard file
    types for which no UTI exists. There are of course a lot of those
    around in the big bad world. If I want to use UTIs in my app (in some
    document types) I seem to be forced to declare a UTI for such a type.
    However just declaring  UTI of my own seems wrong as I don't "own"
    the file type. It seems to me worse than fragile. If some other app
    would do the same and declare its own custom UTI for this file type,
    NSWorkSpace could just as well return that UTI instead of my UTI,
    which would break my app. This is aggravated by the fact that in
    Leopard NSWorkSpace is used to identify the UTI from the URL instead
    of NSDocumentController.

    Another problem is: how does the Save panel / document determine the
    file extension for a saved type? In Tiger [NSDocumentController
    fileExtensionsForType:] was used. But in Leopard this method is
    depreated, and it's replacement in NSDocument is not used for this
    situation according to the docs. So am I forced to declare all UTIs
    for all document types I'd like to save? Then my question is: how can
    I declare UTIs, apart from in Info.plist? We have an app that can
    define document types for saving at run time, so these cannot be
    defined in Info.plist. So how does NSDocumentController register UTIs
    with the system?

    It seems to me that Leopard really has limited my possibilities and
    made things more fragile, rather than solving problems. That seems
    too bad.

    Christiaan
previous month november 2007 next month
MTWTFSS
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
Go to today