問題タブ [nsapplication]

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 投票する
4 に答える
10912 参照

cocoa - Mac OS X Lion で NSWindow がフルスクリーンかどうかを知るには?

[NSApplication presentationOptions]が含まれているかどうかを確認する必要があると思いますNSFullScreenModeApplicationPresentationOptionsが、どうすればそれを達成できますか?

編集:[NSApplication presentationOptions]私のドキュメントベースのアプリでは、フルスクリーンのドキュメントとそうでないドキュメントがあるため、使用は機能しません。私は今、別の解決策を探しています。と呼ばれるプロパティがないのはなぜだろうと思って[NSWindow isFullscreen]います。

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

objective-c - キーボードイベントに応答しないドキュメントシート

ファーストレスポンダーの問題だと思いますが、よくわかりません。テーブルビューのデータの編集ウィンドウを実装しています。Mail.appでフィルタールールを編集するためのUIと概念が非常に似ています。

プライマリウィンドウに添付する編集ウィンドウがあります。

メインウィンドウのタイトルバーから、パネルが正しく表示されます。パネル上のポップアップコントロールをマウスで操作することはできますが、テキストフィールドを編集したり、フィールド間をタブで移動したりすることはできません。他のすべては正常に動作します。何か案は?

ジョー

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

ios - NSApplicationとUIApplication

UIApplicationとの違いは何NSApplicationですか?(私は彼らのドキュメントからそれを得ていないので...)
誰かが私に彼らの違いについての詳細な説明のためのいくつかの有用なリンクを与えることができますか?また、 iOSアプリケーション
での(および.h)の重要な役割は何ですか? ありがとうございました。AppNameAppDelegate.m

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

macos - Mac のドック アイコンにドロップされたすべてのファイルのパスを取得する

NSApplicationDelegateおよびメソッドを使用して、openFilesユーザーが (Cocoa) アプリのドック アイコンにドロップするランダム ファイルのリストのパスを取得しようとしています。

単一のファイルまたはフォルダーをアプリのドック アイコンにドラッグすると、私のソリューションは問題なく動作します。

ただし、複数のファイルまたはフォルダーをアイコンにドラッグすると、ジョブの実行に失敗することがよくあります。その際、openFilesは常に呼び出されますが、多くの場合、それが提供するファイルのリストは完全ではありません。同じファイルを個別に渡すと、完全に機能します。

誰かが私が間違っていることを知っていますか?

(私は Snow Leopard 10.6.8 を使用しています)

--

更新: 問題を再現するテスト プログラムをここにアップロードしました: https://fgt.bo/if6

plist ファイルに何か問題がありますか?

0 投票する
4 に答える
7527 参照

cocoa - nibファイル全体でNSApplicationデリゲートで定義されたカスタムアクションにメニュー項目を接続するにはどうすればよいですか?

私のCocoaアプリには、接続する必要のある2つのNIB/XIBファイルがあります。

  1. MainMenu.xib:NSApplicationデリゲートオブジェクトのカスタムオブジェクトが含まれ、NSApplicationプレースホルダーの適切なアウトレットに接続します。

  2. ContextMenu.xib:;を設定しNSMenuます。1つのエントリで設定ダイアログを開くことになっています

カスタムアプリデリゲートは、アプリIBActionの[設定]ウィンドウを表示するように定義します。

アプリケーションデリゲート(最初のNIB)で定義されたアクションに設定を表示するためにNSMenuItem(2番目のNIB)を接続するにはどうすればよいですか?

ドキュメントによると、これは簡単なはずですが、InterfaceBuilderでこれを正確に行う方法については言及されていません。

メニュー項目がアプリケーションレベルのコマンドを参照している場合は、そのコマンドをアプリケーションデリゲートに直接実装するか、デリゲートにアプリケーションの他の場所の適切なオブジェクトにメッセージを転送させることができます。

どういうわけか、2番目のNIBのアプリデリゲートにアクセスし、それが私のカスタムクラスであることをInterface Builderに伝え(カスタムIBActionを認識しているため)、メニュー項目のアクションに接続する必要があります。

ポインタをありがとう!

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

macos - 実行中のアプリケーションのアプリケーション バッジを取得する

これが可能かどうかはわかりませんが、実行中の他のアプリケーションのアプリケーション バッジを取得したいと考えています。そこで、Mail のバッジや Adium などの他のアプリからテキストを取得したいと考えています。私は調べましたが、NSWorkspaceこれNSRunningApplicationを見つけることができませんでした。どんな助けでも素晴らしいでしょう。

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

multithreading - AppleのCocoaAPIでは、NSApplicationMainをメインスレッドから呼び出すことが重要なのはなぜですか?

NSApplicationMainのドキュメントには、次のように記載されています。

アプリケーションを作成し、アプリケーションのメインバンドルからメインnibファイルをロードして、アプリケーションを実行します。この関数は、アプリケーションのメインスレッドから呼び出す必要があります[...]。

「メインスレッド」は明らかに、プログラムの最初のスレッドを指し、そこでmain(argc, argv)開始します。NSThreadのドキュメントをざっと見る+ (BOOL)isMainThreadと、現在のスレッドが「メイン」スレッドであるかどうかを判断するために使用できることがわかります。いくつかのテストを実行しました。このメソッドNSApplicationMainは、まだ呼び出されているかどうかに関係なく機能します。

私の質問には2つの(ある程度関連する)部分があります:

  1. のメインスレッドの何がそんなに特別なのNSApplicationMainですか?
  2. そもそもCocoaはメインスレッドをどのように識別しますか?
0 投票する
1 に答える
1505 参照

objective-c - なぜsendAction:が機能しないのにperformSelector:が機能するのですか?

ターゲットアクションメカニズムをサポートするカスタムクラスがありますが、この特定のケースでは、次のコマンドを実行してアクションを呼び出そうとすると、奇妙なことになります。

それは機能しませんが、この方法は機能します:

明らかに両方ともtarget_有効action_な値があります。

私はそれを機能させたので、これは大したことではありません。

-[NSApplication sendAction:to:from:]これはかなり基本的な操作のように見えるので、なぜ機能しないのか理解できません。私はsendAction:...過去に問題なく使用してきましたがsendAction、ターゲットがである場合にメッセージに応答するオブジェクトを探すメカニズムがあるという事実を除けば、これら2つの間にいくつかの重要な違いがあるようですnil

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

objective-c - kCGWindowNumber から NSWindow を取得する

k からrefCGWindowNumberを取得するにはどうすればよいですか。NSWindow私は使用してみました:

しかし、私は常にヌル値を取得します。特定のウィンドウの上に常に設定しNSWindowた適用するを取得する必要があります。[window setlevel:NSFloatingWindowLevel]誰かがこの問題を解決する方法を知っていますか、または別の解決策がありますか?


答えてくれてありがとう、しかしこれは解決策ではありません。私はすでに試しましたがうまくいきません。実際にテストを行いました。次のコードを試しました:

しかし、結果は常にWindow: (null)

ウィンドウのリストがあります。ここで、ウィンドウの OwnerPid Number を取得できます ecc.. ecc... そして今、いくつかのウィンドウの上に常に設定する必要があります。

Always on top is possible set whit: [window setlevel:NSFloatingWindowLevel], window is a NSwindowobject, it's real?

解決策はありますか?または別のアイデア、私の問題ですか?

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

cocoa - Cocoa Dock が NSApplicationDidChangeScreenParametersNotification を起動する

ドックの位置を変更すると、Cocoa は NSApplicationDidChangeScreenParametersNotification を起動します。

問題は、Apple Docsに関しては、次の場合にのみ発生させる必要があることです。

コンピューターに接続されているディスプレイの構成が変更されたときに投稿されます。構成の変更は、プログラムによって行うことも、ユーザーが [ディスプレイ] コントロール パネルで設定を変更したときに行うこともできます。通知オブジェクトは sharedApplication です。この通知には userInfo ディクショナリが含まれていません。

そのため、新しいディスプレイを接続するときにアプリケーション ウィンドウを更新する場合 (たとえば、HUD ウィンドウのフレームを変更/移動するなど)、ドックに偽の通知が送信されます。また、この通知には userInfo ディクショナリが添付されていないため、ドックまたは新しいディスプレイ コントローラーを確認する機会がありませんでした。

では、これをどのように処理しますか?

考えられる解決策は、通知が発生したときに [NSScreen mainScreen] サイズを確認することです。この NSSize が変更された場合、その通知はドックからではなく、接続された新しいディスプレイから送信されます。