問題タブ [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.

0 投票する
1 に答える
2383 参照

iphone - プログラムで AppStore を開く際の問題

アプリ ストアを開く際に問題が発生しました (アプリの更新を提案するため)。

これは私がやっていることです:

canOpenURL が false を返しています。また、条件なしで試しましたが、機能しません。

さらに、UIApplication で openURL メソッドの代わりに NSWorkspace を使用しようとしましたが、コンパイル エラーが発生しました。これは確かに依存関係の問題ですが、Cocoa.framework も AppKit.framework も見つからず、それらの 1 つを私の binaryLibraries に追加することができませんでした。事業。

0 投票する
0 に答える
173 参照

objective-c - サンドボックス化されたアプリからカスタム Finder ラベルにアクセスする

ファイルのFinderラベルを(とりわけ)表示および変更できるアプリがあります。とメソッドを介して色とラベルを取得し、とメソッドを使用してファイルNSWorkspaceのラベルを取得および設定します。これはすべてうまくいきます。finderLabelsfinderLabelColorsNSURLgetResourceValue:forKey:error:setResourceValue:forKey:error:

この問題は、Finder の設定でラベルの名前を変更すると発生します。は、ユーザーが入力したカスタム ラベル名ではなく、常に既定の名前 ("Red"、"Orange" など) を与えることNSWorkspaceがわかりました。finderLabels

このプロジェクトで、カスタム Finder ラベル文字列を正しく取得するコードを見つけましたが、Finder 設定にアクセスする (具体的には を呼び出す) ことによって行ってい[[NSUserDefaults standardUserDefaults] persistentDomainForName:@"com.apple.Labels"]ます。気分が悪いだけでなく、NSUserDefaults リファレンスには次のように記載されています。

サンドボックスに関する考慮事項
サンドボックス化されたアプリは、他のアプリの設定にアクセスしたり変更したりすることはできません。

私のアプリはサンドボックス化されているため、明らかに機能しません。

私の質問は、 がカスタム Finder ラベル文字列を返さないNSWorkspaceのはなぜfinderLabelsですか?サンドボックス化されたアプリでこれを実現できる他の方法はありますか?

0 投票する
1 に答える
115 参照

objective-c - NSWorkSpace によって起動されるウィンドウのサイズを縮小する方法はありますか?

この行を使用して、ブラウザーで URL を開きます。

NSWorkspace で作成したウィンドウのサイズを小さくしたいのですが、プログラムで可能ですか?

0 投票する
1 に答える
2454 参照

macos - 別のユーザーから実行されているアプリケーションのバンドル識別子を取得します

シナリオは次のようなものです:「1 人のユーザーからアプリ ( myproc など) を実行し、ユーザーを 2 番目のユーザーにすばやく切り替えます」
ここで、特定のバンドル識別子 ( com.ak.myproc など)で実行されているすべてのプロセスを特定しようとすると; 最初のユーザーから実行されているプロセスについては、これを判断できません。

私は次のことを試しましたが、無駄でした:

  1. [NSRunningApplication runningApplicationsWithBundleIdentifier:]
  2. [[NSWorkspace sharedWorkspace] runningApplications]次に、各アプリケーションのバンドル ID を比較します。最初のユーザーに対して実行されているアプリは、このリストには表示されません。
  3. プロセス リストを使用しsysctl()て反復処理する - ここでは、最初のユーザーからのアプリの pid が取得されます。その後:
    • を試してみると[NSRunningApplication runningApplicationWithProcessIdentifier:]、ゼロになります。
    • を続けようとGetProcessForPID()するProcessInformationCopyDictionary()と、 nil 辞書が表示されます。
    • を続けようとGetProcessForPID()するとGetProcessInformation()、 で何も役に立ちませんProcessInfoRec

誰か助けてくれませんか?ありがとう。

OS: Mac OS X 10.8.4
Xcode: 4.6.2

0 投票する
2 に答える
348 参照

objective-c - Cocoa で実行中のアプリケーションが見つかりません

次のコードを使用して、Cocoa で実行中のアプリケーションのリストを取得しています。

ただし、ターミナル セッションから開始したアプリケーションがリストに表示されません (「ターミナル」は表示されます)。アプリケーションは、cocoa コードを実行している同じユーザーから開始されました。

起動したアプリケーションは Terminal の下にありますか? そのような場合、どうすればその名前と引数を見つけることができますか?

別の端末セッションで ps を実行すると、プロセスが正しく表示されます。

0 投票する
1 に答える
318 参照

objective-c - デスクトップ上のエイリアスのアイコンを変更しますか?

デスクトップに実際のアプリケーションのエイリアスがあります。

実行時にアイコンを変更する必要があります。私が使っている、

しかし、この/アプリケーションフォルダー内の元のファイルのアイコンの変更。エイリアスを変更する代わりに。

0 投票する
1 に答える
839 参照

macos - Cocoa でファイルにアイコンを設定してみる

ファイルアイコンを取得して同じファイルに戻そうとします(目標はオーバーレイを作成することですが、最初にこれを機能させたいと思います):

-> 結果として、ファイルは独自のアイコンを保持する代わりに、標準の Finder アイコンを取得します。私が間違っていることはありますか?

0 投票する
1 に答える
1018 参照

objective-c - Cocoa [[NSWorkspace sharedWorkspace] iconForFile:filePath が原因でメモリ リークが発生した

ファイル/ディレクトリのアイコン画像を見つける必要があるココアアプリケーションを作成しています。指定されたパスからアイコン画像を取得するためにこれを使用しています。

このメソッドは、アプリケーション全体で劣勢的に呼び出されます。アプリを使用するほど、アプリケーションの割り当てメモリが増加します。メモリリークを探すときにインストゥルメントを使用すると、上記の方法が100%のメモリリークの原因であることがわかりました。このメモリリークをどのように削除できますか、またはアイコン画像とメモリを取得できる他の方法は問題になりません。誰か助けてください。ありがとう

編集:

これは、このメソッドを呼び出す元のメソッドです。

メソッド fileAtPath が別のメソッドから再帰的に呼び出され、WEFile クラス オブジェクトが配列に格納されます。テーブルビューで表示します。

編集 2: これは、fileAtPath メソッドを呼び出すコードです。そして、このメソッド directoryAtPath は、ディレクトリのパスをパラメーターとしてテーブル選択を渡すときに呼び出されます。