テーブルビューから行をドラッグしてMacOSX 10.6の他のNSTextFieldにドロップし、テキストの文字列をドロップしたいと思います。
ドラッグアンドドロップはすでに私のアプリ内(NSTableViewとNSBrowserの間)で機能しますが、ソースアプリケーション以外のアプリで受け入れることができるデータをペーストボードに配置することに成功していません。
これが私が試したコードです。他のNSTextFieldにドロップしたときに、「hello」という単語を「貼り付け」するのに十分だと思いました。
-(BOOL) tableView:(NSTableView *)tableView writeRowsWithIndexes:(NSIndexSet *)rowIndexes toPasteboard:(NSPasteboard *)pboard {
[pboard declareTypes:[NSArray arrayWithObject:NSStringPboardType] owner:self];
[pboard setString:@"hello" forType:NSStringPboardType];
return YES;
}
//-
ドロップが受け入れられることを示すカーソルが表示されないので、機能しません。
- 私が試したこと:
- Pasteboard識別子の10.5バージョンを使用するNSStringPBoardType
- 10.6バージョンのNSPasteboardTypeStringを使用します。
- 私はデータを怠惰に提供していないので、owner=nilを設定します。
- キー付きアーカイバの使用:[pboard setData:[NSKeyedArchiver archivedRootObject:@ "Hello !!"]]
上記のどれもうまくいきませんでした。「データをエンコードし、持っているものをペーストボードに伝えてから、データを与える」という概念は正しいと思いますが、他のアプリはそれを認識しないため、ペーストボードに正しいデータ型を伝えていないのではないかと思います。 。
どこが間違っているのですか?
ありがとう、ウッディ