問題タブ [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 投票する
1 に答える
707 参照

objective-c - C++ループからCocoaGUIを起動し、参照を渡します

私は問題があります...多分カップル:)

私のチームは、プラットフォームに依存するものを処理するためにBoostとCMakeを使用してC++でクライアントを作成しました。チャームのように機能します!...時々:)とにかくWindowsのグラフィカルインターフェイスは実行されますが、MacOSXの場合は実行されません。これも私の課題です。当然私はCocoaを使用していますが、問題はメインループがC ++コードにあり、GUIがクライアントに応じていくつかのアニメーションを更新する必要があることです。

これはどのように行われますか?スレッドを釘付けにする方法と、C++コードからGUIコードに参照を渡す方法について非常に混乱しています。現在、GUIコードには、プロジェクトの他の部分から完全に分離された独自の小さなMVCがあります。私はたくさん見回しました、多分私は初心者が多すぎます:)、しかし私は本当に使うことができるものは何もうまくいきません...私はそれをすべて本当に理解していません。

NSApplicationを再作成するのに疲れました。私はこの役立つチュートリアルを見つけました:http: //cocoawithlove.com/2009/01/demystifying-nsapplication-by.html

デリゲートについて少し見てきました:デリゲート
はObjective-Cでどのように機能しますか?

NSNotificationCenterを少し見てきました:
Objective-CのNSNotificationCenterを介してイベントを送受信するクラスを作成するにはどうすればよいですか?


たぶん、ここの誰かが私を理解させる方法を知っていますか?何を調べますか?どこを見ればいいの?

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

objective-c - Macのすべてのウィンドウを最小化しますが、1つのウィンドウがアクティブになるたびに

NSStatusItemで実行中のすべてのアプリケーションを最小化するコードを追加しました。これは非常に単純なコードです。

しかし、このアプリケーションを実行すると、ユーザーが現在対話しているアプリケーションが常にデスクトップ上にあります。私も試しました

そして、私にアップルスクリプトをうまく提案してくれる人のためにさえ、私もそれを試しましたが、運が悪いかもしれません私はスクリプトを間違えたかもしれませんわからない

しかし、それでも同じ問題が解決しないため、NSStatusItemを使用するたびに1つのアプリが残る理由を指摘することはできません。これについて私を助けてください。

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

cocoa - メインウィンドウを表示せずにCocoaアプリを起動します

いくつかのクレデンシャルを入力できる単一のNSWindowを備えたシンプルなCocoaアプリがあり、送信後にアプリは別のプロセスを開始します。クレデンシャルが一度入力されてキャッシュされた場合、アプリのメインウィンドウを表示せずにアプリを実行してプロセスを開始したいと思います。どうすればそれを達成できますか?

アプリには、NSApplicationDelegateに準拠するクラスが1つと、.xibファイルが1つだけあります。

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

objective-c - NSApplicationサブクラスで-sendEvent:をオーバーライドすることはできませんか?

私のmacosxアプリでは、そのメソッドをサブクラス化NSApplicationしてオーバーライドします-sendEvent:。Appleは文句を言う:

アプリには、フレームワーク「/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit」からの「OBJC_IVAR _ $_NSApplication._delegate」が含まれています。

私はそれについて何ができますか?私は何が間違っているのですか?

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

cocoa - systemStatusBar の開始が applicationDidFinishLaunching で機能しない

私のプロジェクトはドキュメント ベースで、ステータス メニューをロードするコードは、awakeFromNib の下に配置した場合にのみ実行されます。

しかし、私のテスト プロジェクト (非ドキュメント ベース) では、コードはapplicationDidFinishLaunchingで正常に実行されます。なんで?この機能をステータス メニューに理想的に使用したいと思いませんか?

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

cocoa - Cocoa NSApplicationはアクティブではありませんが、マウスイベントを受信して​​います

ウィンドウから離れてクリックすると、奇妙な問題が発生します。メインとキーを辞退します。次にクリックして戻ると、クリックしたビューがマウスのクリックに反応しません。しかし、2 回目のクリックでビューが応答します。最初のクリック時にウィンドウがキーではなく、クリックによってウィンドウがキーになり、2 回目のクリックを処理できたかのように。

最初のクリック イベント中にアプリケーションがイベントを取得しているかどうかを確認するために、サブクラスNSApplication化してインターセプトしました。sendEvent:さらに、私はレスポンダー チェーンをダンプし、確かに私のビューがチェーン内にあることを確認しましたが、ウィンドウは 2 回目のクリックまで重要ではありませんでした。また、最初のクリック イベントを受け取ったときに、アプリケーションがアクティブになっていないことにも気付きました。これはどのように可能ですか?アプリケーションは、マウス イベントを受け取ったときにアクティブになるはずではありませんか? 鶏卵...

考えや提案はありますか?

更新:ドキュメントを読んだ後、私はこれを見つけました:

マウスダウン イベントは、カーソルがビュー オブジェクト上にあるときにユーザーがマウス ボタンを押すと送信されます。ビューを含むウィンドウがキー ウィンドウでない場合、ウィンドウはキー ウィンドウになり、マウスダウン イベントを破棄します。ただし、ビューは、NSView の acceptFirstMouse: メソッドをオーバーライドして YES を返すことにより、このデフォルトの動作を回避できます。

それで、それが起こっているようです。ただし、オーバーライドしようacceptsFirstMouse:としacceptsFirstResponderましたが、役に立ちませんでした。私の意見はまだ「最初のマウスを受け入れる」ではありません。

ありがとう!

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

cocoa - NSApplicationPresentationOptions は FIREBREATH では機能しません

私が取り組んでいるプラグインからユーザー エクスペリエンスをカスタマイズしようとしています。私の目標は、COCOA NSApplication で利用可能なオプションを使用してキオスク スタイルを提供することです。コードは次のようになります。

通常のココア アプリケーションを使用してこのコードをテストしたところ、正常に動作しますが、このコードを "Firebreath PlugIn" 内の関数に埋め込むと、firebreath は正しくビルドされ、他の関数は正常に動作しますが、何も起こりません。

いくつかのアイデア?これはおそらくシステムのセキュリティ制限に関するものですか?? もしそうなら、それを有効にする方法は?他のココア機能が正常に機能しているのに、なぜこれが機能しないのかわかりません。

XCODE 4.2を使用してMac OS X Lionで開発しています

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

xcode - その場で最小化 - カスタム フレームワークが必要ですか

レイヤー 0 で表示されているウィンドウのタイトル バーをダブルクリックしたときに発生するシステム全体の最小化機能を作成したいと考えています。

これは、再実装するのが非常に簡単な機能のようです...タイトルバーがダブルクリックされたとき、タイトルバーのみを描画します。それでおしまい。問題は、すべてのアプリケーションに実装することです。AppKit の動作をオーバーライドするには、カスタム フレームワークを作成する必要があると思いますか? たぶんNSApplication、NSWindow、またはNSViewですか?

最小化をその場で再作成するにはどうすればよいですか? フレームワークは私の唯一の選択肢ですか? フレームワークを作成した場合、サードパーティ アプリの最小化の動作を置き換えることはできますか?

最小化ボタンのデフォルトの動作をインターセプトして再作成するには、どのフレームワークをオーバーライドする必要がありますか?

最小化インプレースについて: 私は Unsanity の WindowShade に精通しています。これはまさに私が作成したいものです。unsanity は Lion バージョンに取り組んでいると思われますが、その実績は bismal です。その場で最小化は、OS 7 または 8 の時代にさかのぼるシステム機能でした。この機能を置き換えようとする他のユーティリティを試しましたが、コア システム レベルでその場で最小化を行うものはありません。する必要があるように。ユーティリティの提案を提供しないでください。私は自分自身を構築するつもりです。

最小化インプレースを再作成するアプリケーションを構築しましたが、十分ではありません。 私のアプリケーションは、ドッキングするために最小化されたときに、サードパーティのウィンドウの代わりに「プレースホルダー」ウィンドウ (私のアプリに属する​​) を配置することで、最小化を半成功的に再作成します。ウィンドウ (タイトル バーのみ) がダブルクリックされると、ウィンドウを閉じてドックから実際のウィンドウを復元します。

カスタム アプリは問題なく動作しますが、アプリケーションの切り替えが頻繁に発生します。アプリ間の切り替えがほぼシームレスになるように最適化しましたが、ウィンドウのタイトル バーをダブルクリックするたびにアプリケーションの切り替えが行われるという事実は変わりません。アプリケーションの切り替えの結果、メニュー バーが前後に切り替わり、サード パーティ製アプリのパレットは自分のアプリがフォーカスされると非表示になり、リストが続きます。

というわけで、コンセプトアプリは作ったものの、この方法では思い通りにいかない。Minimize-in-place は、アプリケーションのビルド以外の方法を使用して実装する必要があり、その方法を理解するのに助けが必要です。

その場で最小化するデモアプリ

私が知っていることは、私がする必要があると思います。提案と支援を歓迎します。 AppKit を置き換えるカスタム フレームワークを作成する必要があると思いますか? コードの非常に小さな部分をオーバーライドする必要があるだけなのに、これは圧倒的に思えますか? つまり、コアの _minimize 関数が何であれ。

サード パーティ ウィンドウのタイトル バーがダブルクリックされると、タイトル バーにクリップするだけで、システムの残りの部分を通常どおりに機能させることができます。最小化を解除すると (2 回目のダブルクリック)、クリップをフル ウィンドウに戻します。

シンプルですよね?

支援/提案をありがとう、

クリス

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

cocoa - applicationDidFinishLaunchingおよびapplicationShouldTerminate

私はCocoaアプリを持っています(OpenGL呼び出しと外部IOおよびシリアル回線でかなり複雑です...)。
しばらく前に私はいくつかの変更を加えました、そして今私applicationDidFinishLaunchingはもう呼ばれていません!これまでのところ、方法を見つけることができませんでした(プロジェクトをソース管理下に置いていますが、原因はまだ見つかりません!)。

しかし、見知らぬ人はとapplicationShouldTerminateですapplicationShouldTerminateAfterLastWindowClosed

私の質問は、同じファイル内にあるものapplicationShouldTerminateが呼び出されないのに、なぜ呼び出されるのかということです。 applicationDidFinishLaunching.m@implementation