メイン メニューの xib ファイルに text という文字列があり、コピー メニュー項目をオブザーバーを介して呼び出されるアクションにリンクしました。このメソッドが実際に呼び出されることをブレークポイントで確認しましたが、問題は文字列が実際にはそうではないことです。ペーストボードにコピー:
- (void) copy: (NSNotification*) notification
{
if([[self window]isKeyWindow])
{
// It always enters in this block
NSPasteboard* pb=[NSPasteboard generalPasteboard];
NSPasteboardItem* item=[[NSPasteboardItem alloc]init];
[pb clearContents];
[item setData: [NSKeyedArchiver archivedDataWithRootObject: text] forType: NSPasteboardTypeString];
[pb writeObjects: [NSArray arrayWithObject: item]];
}
}
ブロックに入った後、ペーストボードのすべてのコンテンツをクリアします。しかし、コピーしたコンテンツをテキスト編集に貼り付けようとすると、何も貼り付けられません (空の文字列) が、文字列の長さはゼロではありません。
また、writeObjects の戻り値を確認しようとしましたが、YES が返されます。