問題タブ [nsworkspace]
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 - リムーバブルストレージがマウント解除されたことを検出する
リムーバブルストレージがマウント解除されたとき、またはUSBから強制的にプラグが抜かれたときに発生するイベントを検出するアプリに取り組んでいます。これらのイベントを受け取るにはどうすればよいですか?
NSWorkspace
デバイスをスムーズにアンマウントする最初の可能性を見てきましたが、このクラスには-unmountAndEjectDeviceAtPath:
デバイスをアンマウントするようなメソッドがあります。マウントされていないボリュームを検出するサンプルコードを誰かに教えてもらえますか?
macos - diskEvt/kEventClassVolumeに相当するココア?
UI にボリュームのドロップダウン メニューがあり、新しいディスクがマウントされたときにそれを更新したいと考えています。クラシック時代には、これにはイベントの監視が含まれていましたdiskEvt
。Carbon では、これはkEventClassVolume
. ココアに相当するものは何ですか?
(これに関するAppleのドキュメントへのポインタは、質問を満たすでしょう.私は何も見つけることができませんでした!)
safari - システム ブラウザの設定に関係なく、Safari で URL を開く
私の Objective-C プログラムでは、システムのデフォルト ブラウザが何であれ、Safari で URL を開く必要があります。これは、Firefox やその他のブラウザーを起動する可能性があるため、これは機能しないことを意味します。
私はこれに近いと思います:
パラメータとして URL を渡す方法を理解する必要があるだけです...もっと簡単な方法はありますか?
ありがとう!
更新:次のコードは、必要な URL で Safari を起動しますが、Safari はすぐに終了します! これはなぜですか?
で同じ動作を観察しましたLSOpenFromURLSpec
。Safari インスタンスが実行されている場合、正常に動作します。実行中の Safari インスタンスがない場合は、新しいインスタンスを開始し、すぐに終了します。
更新 2: Safari は、Flash が埋め込まれた Web サイトでのみクラッシュします。上記のコードを使用すると、google.com を問題なく開くことができますが、たとえば、YouTube ビデオで Safari がクラッシュします。
macos - NSRunningApplication、最近使用したアプリケーションのリストを返しますか?
最近使用したアプリケーションのリストを取得しようとしています。NSWorkspace
アクティブなアプリケーションのリストが返され、 を使用していくつかのオプションで並べ替えることができますNSRunningApplication
。以下のリストを参照してください。
発売日ではなく、最新の「アクティブな」日付が必要です(方法のようにcmd-tabソート)。誰かがこれの解決策を知っていますか?
macos - Mac OS X - アプリの起動を監視しますか?
Mac OS X 用のシンプルなメニューバー アプリを作成したいと考えています。ユーザーは、Safari が開いているときにのみそのアプリを使用したいと考えています。メニューバーが不必要に乱雑にならないように、Safari が開いているかどうかに応じて、メニューバーのアイコンを隠したり表示したりしたいと考えています。
私のアプリが登録できる通知はありますか?私が想像できる唯一の回避策は、実行中のプロセスをポーリングし、Safari が起動されているかどうかを確認することですが、それは私の問題を解決するエレガントな方法ではないようです...
macos - イジェクト可能なデバイスが OS X に接続されている (取り外されている) ことを検出する
大容量記憶装置が Mac に接続された (または接続されていない) ときにどのように通知されるのか疑問に思っています。
cocoa - NSWorkspaceをアクティブにしたり、スペースを切り替えたりせずにアプリを起動します
アプリをアクティブ化せずに、バックグラウンドで起動しようとしています。私はこのメソッドをNSWorkspace
バックグラウンドで起動するだけです:
唯一の問題は、アプリをアクティブ化しないが、スペースをそのアプリケーションの割り当てられたスペースに切り替えることです。これを回避する方法はありますか?
objective-c - Cocoaでのサンドボックス化のためのメッセージの宛先の決定
そのため、製品の1つにサンドボックスを追加しました。ワークフローの最後のステップがデスクトップを設定することであることを除いて、それは完全に機能します。これはNSWorkspaceを介して行われます。電話すると
次のエラーが表示されます。
そうです、次のような一時的な例外が必要です。
だから最終的に私はXXXXXで何が起こるかを理解する必要がありますよね?デスクトップ設定を処理するものは何ですか?そして、より一般的には、メッセージのターゲットバンドルを決定する簡単な方法はありますか?
cocoa - Cocoa: 別のアプリケーションを起動するためのサンドボックス資格
私は電話しています
サンドボックス化されたアプリから、コンソールに次のエラーが表示されます。
9/5/11 12:23:12.462 PM lsboxd: 21383 の < PATH REDACTED > の生成を拒否 - 理由 -10826
9/5/11 12:23:12.463 PM アプリ: spawn_via_launchd() が失敗しました、errno=54 label=[0x0-0x1994993].MYApp path=< PATH REDACTED > flags=0
9/5/11 12:23:12.464 PM アプリ: LSOpenFromURLSpec() は、アプリケーション < PATH REDACTED > (null) に対して -10810 を返しました。
つまり、アプリ 1 がアプリ 2 を起動するべきではないと考えている「Launch Services Sandbox Daemon」(lsboxd) によって、明らかにブロックされています。
レコードの場合、10826 は「ユーザーにアプリケーションを起動する権限がありません」であり、10810 は「不明なエラーが発生しました」です。
この場合の権利を知っている人はいますか?
サンドボックス化されたアプリから他のアプリを起動するにはどうすればよいですか (AppleScript とは言わないでください。特にサンドボックス化されたアプリや XPC サービスから呼び出された場合は、機能しない悪夢です)。理想は、サンドボックス内から (重度の不自由な) NSWorkspace を使用する方法です。