問題タブ [nspasteboard]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
cocoa - Mac OS X 10.5でFinderから複数のファイルのドラッグアンドドロップを処理するにはどうすればよいですか?
Finderからアプリケーションにドラッグ/ドロップされたすべてのファイルのURLを取得する必要があります。
私は10.6で実行されているCocoaアプリを持っています。これは、ペーストボード上の複数のアイテムを処理する新しい10.6NSPasteboardAPIを使用してこれを行います。このアプリを10.5にバックポートしようとしています。10.5でこれを処理するにはどうすればよいですか?
以下のようなことをすると、最初のURLしか取得できません。
objective-c - 上書き貼り付け: テキストの書式設定
コントロールに貼り付けられる文字列をキャプチャし、貼り付ける前に文字列にカスタム書式を適用したいと思います。
これはどのように可能ですか?
ありがとう!
objective-c - ココア仮想キーストロークの痛み
ハイライトされたテキストをNSPasteboardのgeneralPasteboardにコピーして、ホットキーで応答するアプリケーションを作成しています。仮想キーストロークを送信するための解決策をここで探した後、私はこれを見つけました:「Cmd-C」キーストロークをobjective-cのアクティブなアプリケーションに送信する方法、またはアプリケーションにコピー操作を行うように指示する方法は?
NSAppleScriptで提案されたapplescriptを試しました。
動作しますが、初めてホットキーを押したときだけです。後続の各ヒットは、強調表示されたテキストを取得しません。generalPasteboardには、スクリプトを再実行する前と同じ内容が含まれています。コードを実行する前にgeneralPasteboardをクリアしても意味がありません。これは、ペーストボードの内容を読み取ろうとするとコードが失敗するためです。ログは次のとおりです。
だから私は次の提案された解決策を試しました:
上記はキーストロークCommand+cを送信するはずですが、私が得るのはビープ音だけで、ペーストボードの内容は変更されていません。
私は機知に富んでいます-誰かが私が欠けているものについて私に教えてくれたり、私がとても単純なもののために見落としているものを指摘したりできますか?
cocoa - Cocoaを使用して、あるアプリから別のアプリにテキストを貼り付ける方法は?
NSPasteBoard
Apple のドキュメントを読み、アプリケーションが に書き込みPasteBoard
、他のアプリケーションがそのテキストを読み取って使用できるようにする方法について読みました。
アプリケーション(ステータスバーにある)からNSTextField
別のアプリケーション内にあるテキストを貼り付ける方法を教えてください。
私がやろうとしているのは、SnippetやSnippetsAppと似たようなことです。
私が完全に愚かで、Apple Docs で明白なことを見逃している場合は、正しい道を教えてください:)
ありがとう!
objective-c - OS X ペーストボードのクラッシュ
CMD-C コピー コマンドをエミュレートし、ペーストボードを読み取ることでテキストを読み取るアプリケーションがあります。残念ながら、これが必要なものを実現する唯一の方法です。これは開発中であるため、ときどき何か間違ったことをして (コピー コマンドとは関係ないと思います)、アプリがクラッシュします。ときどき、これがシステム全体のペーストボードに影響を与えることがあります。コピー、切り取り、または貼り付けを試みると、実行中の他のアプリケーションがクラッシュします。
これを処理する堅牢な方法はありますか?終了する前に NSPasteboard で行うべきことはありますか? 何が起こっているのかについての情報は大歓迎です。
完全を期すために、ペーストボードにアクセスするコードのスニペットのみを次に示します。
ペーストボードから読む:
最初にペーストボードをクリアします(起動時に一度だけ実行します):
PS私は、このコピーコマンドが別のスレッドのループで実行されることを忘れていました-重要になる可能性があります。ループが停止していることを最初に確認せずに、メインスレッドのペーストボードにアクセスしないように注意しましたが。
更新 - 私がやっていることについてのいくつかの質問...
- クラッシュレポートを投稿できますか
現在取り組んでいます - 残念ながら、クラッシュは不規則です。はっきりさせておきますが、これは私がまだ開発中のアプリケーションであり、バグが発生することがあります。これによりクラッシュが発生すると、システム全体のペーストボードがめちゃくちゃになります。私のアプリのペーストボード アクセスがクラッシュを引き起こしているようには見えませんが、代わりに、バックグラウンド ループが PB とやり取りする微妙な段階にある間に終了します。更新 - クラッシュ レポートについて - これは皆さんにとってどれほど重要ですか? 私はまだ開発中ですが、何かが壊れるまで、デバッガーではなく数回実行することができます。残念ながら、今のところすべての未解決のバグを修正しており、クラッシュは発生していません。これは、問題が PBoard コード自体にあるのではないことを強く示唆しています。システム全体がダウンするわけではありません。これらの再起動はすべて面倒です。
- 必要なことを行うために Cmd-C をエミュレートする必要がある理由を詳しく説明していただけますか?
外部アプリケーションのチャット ボックスからテキストをスクレイピングしています。チャット ボックスは、私がアクセシビリティ インターフェイスやその他の手段を使用することを禁止するように作られています。
- 起動時にクリップボードの内容をクリアするのはなぜですか?
新しいテキストのペーストボード テキストを調べます。これは、他のアプリケーションからコピーされたテキストを処理しないようにする簡単な方法です。
- なぜスレッドでコードを実行しているのですか?
ループは、チャット ウィンドウへの切り替えや選択したテキストのコピーなど、ユーザー入力をシミュレートするイベントを継続的に投稿します。これがメイン スレッドで行われると、アプリの UI がハングします。UI を使用して、何が起こっているかの概要を表示します。
- メインスレッドで実行し、ループをチェックしてペーストボードにアクセスするコードを示してください
バックグラウンド スレッドは、NSNotifications を使用してメイン スレッドにデータを渡します。
objective-c - NSPasteboard が更新されていることを確認するにはどうすればよいですか?
コピー コマンドを自動化して、1 秒ごとにテキストをペーストボードに配置しています。残念ながら、これが別のアプリケーションにあるテキストにアクセスする唯一の方法です。コピーしたら、ペーストボードのテキストにアクセスして処理します。
場合によっては、何も選択されていないときにコピー コマンドが送信されることがあります。コピーする。ペーストボードは更新されず、以前のデータが保持されます。
これがいつ発生するかを特定するための創造的な方法は思いつきません。コピー コマンドを送信してもペーストボードが更新されない場合、何かがキャプチャされたかどうかを確認するためにアクセスできるペーストボードにタイム スタンプはありますか?
私はchangeCountを見ていましたが、それが何のためにあるのか正確にはわかりません.ドキュメントはあまり役に立ちませんでした-赤いニシン?
シンプルで効果的なアイデアを喜んで受け取りました!
objective-c - テキストフィールドセル (ココア) のテキストを NSPasteboard にコピーするにはどうすればよいですか?
cocoa にテキストフィールドセルとプッシュボタンがあります。ボタンをクリックしてテキストフィールドのテキストをコピーしたい。
clipboard.h で
clipboard.m で
これを変更するにはどうすればよいですか?
objective-c - NSTableView を取得して、PNG ソースからドロップを登録します
これを機能させようとしていますが、何が欠けているのかわかりません。アイデアは、画像を にドロップして、NSTableView
それらのパスを取得し、それらに対していくつかの操作を行うことができるようにすることです。ドロップを動作させることはできますがNSPastebouardTypeString
、私の人生では、PNGをFinderからテーブルビューにドラッグすることを登録することはできません。私は何が欠けていますか?
関連コード:
objective-c - NSPasteboard setString:forType:LeopardではNOを返し、SnowLeopardでは問題ありません
次のコードは、NSTableViewDataSource
ドラッグアンドドロップを暗示しようとしているところからのものです。
setString:forTypes:
次のコードのメソッドがNO
Leopardで返される理由を誰かに教えてもらえますか?SnowLeopardでは問題なく動作します。「 Cocoaのペーストボードプログラミングトピック」のレガシードキュメントを確認しましたが、何が間違っているのか理解できません。
objective-c - Xcodeからリモートデバッグする場合、ペーストボードのドラッグはゼロです。
10.5と10.6の両方で動作する必要があるアプリを書いています(まだPPCマシンがあります)。私の開発マシンはXcode3.2.3を搭載した10.6.4であり、Xcode3.1.2を搭載した10.5.8マシンを持っています。
リモートデバッグを使用して10.5.8マシンでアプリをテストしましたが、リモートデバッグ時にのみ発生するドラッグアンドドロップ方式で問題が発生しました。
このNSTableViewDelegate
メソッド- (BOOL)tableView:(NSTableView *)tableView writeRowsWithIndexes:(NSIndexSet *)rowIndexes toPasteboard:(NSPasteboard *)pboard
は、nilNSPasteboardを渡します。これは、10.6.4または10.5.8でネイティブに実行している場合は発生しません。
私はXcodeとObjective-Cに比較的慣れておらず、GDBとSSHの基盤にまったく慣れていないため、この問題の原因を突き止めるために何をすべきかわかりません。
また、アプリが起動する直前にコンソールにいくつかの異常なメッセージがありますが、それが関連しているかどうかはわかりません。