OS X / Objective-Cでコードを書いていますが、NSDocument
のサブクラスドキュメントをインスタンスを取得しつつ作成するために、makeUntitledDocumentOfType:error:
を使おうとしていますが、第一引数のdocumentTypeに何を指定すれば良いのかお教え下さい。
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];
補足、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が帰ってきて新規ウィンドウが作成されません。
<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>