28656


OS X / Objective-
Cでコードを書いていますが、`NSDocument`のサブクラスドキュメントをインスタンスを取得しつつ作成するために、`makeUntitledDocumentOfType:error:`を使おうとしていますが、第一引数のdocumentTypeに何を指定すれば良いのかお教え下さい。

[code]

    HogeDocument *unusedDocument = nil;
    for (NSDocument *document in documents) {
        if (document.isDocumentEdited == NO) {
            unusedDocument = (HogeDocument *)document;
            break;
        }// end if found unused document
    }// end foreach opened document / window
    if (unusedDocument == nil) {
        NSError *error = nil;
        NSDocumentController *dc = [NSDocumentController sharedDocumentController];
        NicoLiveDocument *document = (HogeDocument *)[dc makeUntitledDocumentOfType:@"ここに何を指定すれば良いのか" error:&error];
    
[/code]

補足、`info.plist`には以下のように書いていて、第一引数は  
<https://developer.apple.com/reference/appkit/nsdocumentcontroller/1514963-makeuntitleddocumentoftype?language=objc>  
<https://developer.apple.com/reference/appkit/nsdocumentcontroller/1514947-documentclassfortype?language=objc>  
を読んで、`CFBundleTypeName`のValue、`HogeDocumentLog`を指定していますが、実行しても戻り値はnil, errorには
code -256が帰ってきて新規ウィンドウが作成されません。

[code]

    <key>CFBundleDocumentTypes</key>
    <array>
        <dict>
            <key>CFBundleTypeExtensions</key>
            <array>
                <string>.clog</string>
            </array>
            <key>CFBundleTypeMIMETypes</key>
            <array>
                <string>application/xml</string>
            </array>
            <key>CFBundleTypeName</key>
            <string>HogeDocumentLog</string>
            <key>CFBundleTypeRole</key>
            <string>Editor</string>
            <key>LSItemContentTypes</key>
            <array>
                <string>HogeDocumentLog</string>
            </array>
            <key>NSDocumentClass</key>
            <string>HogeDocument</string>
        </dict>
    </array>
    
[/code]


CC BY-SA 3.0
2016-09-02T12:38:20.593
28654
2016-09-02T13:22:37.613
2016-09-02T13:10:50.807
14745
14745
question
objective-c macos
makeUntitledDocumentOfType:error: のTypeに指定する内容を教えて下さい


Document-based applicationを作成すると、次のようなエントリーがInfo.plistにできるのはご存知かと思います。

[![Info.plist](https://i.stack.imgur.com/J7kxi.png)](https://i.stack.imgur.com/J7kxi.png)

**Document Type Name**
(またはCFBundleTypeName)に入力されている内容が、`documentType`に指定すべき文字列になります。デフォルトでは`DocumentType`と言うズバリすぎて逆にわかりにくい内容になっていますが、適切な内容に書き換えた上でお試しください。


CC BY-SA 3.0
2016-09-02T13:22:37.613
28656
2016-09-02T13:22:37.613
13972
28654
answer