5

コピー コマンドを自動化して、1 秒ごとにテキストをペーストボードに配置しています。残念ながら、これが別のアプリケーションにあるテキストにアクセスする唯一の方法です。コピーしたら、ペーストボードのテキストにアクセスして処理します。

場合によっては、何も選択されていないときにコピー コマンドが送信されることがあります。コピーする。ペーストボードは更新されず、以前のデータが保持されます。

これがいつ発生するかを特定するための創造的な方法は思いつきません。コピー コマンドを送信してもペーストボードが更新されない場合、何かがキャプチャされたかどうかを確認するためにアクセスできるペーストボードにタイム スタンプはありますか?

私はchangeCountを見ていましたが、それが何のためにあるのか正確にはわかりません.ドキュメントはあまり役に立ちませんでした-赤いニシン?

シンプルで効果的なアイデアを喜んで受け取りました!

4

2 に答える 2

11

これに関する通知はないと思いますが、ペーストボードをポーリングできます。

pasteboard = [[NSPasteboard generalPasteboard] retain];
[NSTimer scheduledTimerWithTimeInterval:0.25 target:self
                               selector:@selector(pollPasteboard:)
                               userInfo:nil repeats:YES];

- (void)pollPasteboard:(NSTimer *)timer {
    NSInteger currentChangeCount = [pasteboard changeCount];
    if (currentChangeCount == previousChangeCount)
        return;
    NSLog(@"Pasteboard updated: %@", [pasteboard types]);
    previousChangeCount = currentChangeCount;
}
于 2010-05-21T14:26:52.843 に答える