問題タブ [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.
objective-c - NSApp terminate:id は非推奨ですか?
プログラムでアプリケーションを終了する方法を探していました。多くのトピックで人々が を使用しているのを見つけましたNSApp terminate:id
。
Xcodeterminate:id
では交差しています。このメソッドは非推奨ですか? アプリケーションを終了するために使用する必要がありますか? いいえの場合、それを行う正しい方法はどれですか?
更新:
交差していると言ったときの写真:
macos - Mac でのフルスクリーン アプリケーションの検出
私は Cocoa で単純なアプリケーションを開発しており、アプリケーションが全画面表示モードで実行されているかどうかを検出したいと考えています。これは可能ですか?
runningApplications API を介してさまざまな情報を取得できますが、フルスクリーン モードに関する特定のプロパティはありません。誰でもそれを検出する方法を知っていますか? このための炭素イベントまたは API はありますか?
terminate - NSApplication.SharedApplication.Terminate は、未処理の例外の後、実際にはアプリケーションを終了しません
MonoMac で OSX 用の簡単なアプリケーションを開発しています。アプリケーションで未処理の例外が発生した場合、次の方法でキャッチします。
AppDomain.CurrentDomain.UnhandledException += (送信者, e) => Unhandled(e.ExceptionObject as Exception);
関数 Unhandled() 内で、例外をログに記録し、モーダル ウィンドウを実行して、問題が発生したことをユーザーに通知します。
次に、アプリケーションのどこかで通常の例外をスローして、これをテストします。クラッシュ レポート ウィンドウが正常に表示され、エラーがログに記録されます。
しかし、このウィンドウが閉じられた後、アプリケーションが終了することが予想されます。これは、エラーをキャッチしていなかった場合と同様です。そうではありません。アプリケーションのメイン ウィンドウとドック アイコンは表示されたままですが、ウィンドウは完全に固定されています。
上記のコード行を削除すると、アプリケーションがクラッシュしたときにアプリケーションが完全に閉じます。
次のように呼び出して、アプリケーションを強制的に終了させようとします。
しかし、これはまったく何もしないようです。アプリケーションの [Quit] ボタンでまったく同じコード行を使用すると、期待どおりに動作するため、未処理の例外をキャッチした後のアプリケーションの状態には何か特別なものがあるはずです。しかし、何?
念のため、AppDelegate で次をオーバーライドしましたが、違いはないようです。
モーダル フォームを表示すると、アプリケーションの状態に何らかの影響があるのではないかと考えましたが、テストした結果、モーダル フォームを表示するかどうかに違いはないことがわかりました。閉じる代わりにメイン ウィンドウをフリーズしたままにします。
編集:これをテストするときに何か間違ったことをしたに違いありません。エラーフォームを表示しなければ、実際には正常に機能します。
何か案は?
objective-c - NSSavePanel で OK を押した後、beginSheet を呼び出せませんか?
私のココア プログラムには保存機能があり、ユーザーが保存先を選択すると、別の NSPanel を起動して何らかのステータス (つまり、ファイルの保存が完了するまでにかかる時間) を表示する必要があります。これが私のコードです。 :
したがって、NSSavePanel が消えると (つまり、[OK] が押されると)、NSApp endSheet を呼び出さなくても、NSPanel が 1/2 秒間表示されます。
objective-c - アプリが自分によって起動されたかどうかを確認できるように、カスタム パラメータを使用して自分のアプリからアプリを起動する方法を教えてください。
他のアプリを起動するこのアプリに取り組んでいます。私は以下を使用してアプリの起動を聞いています:
そして、私はそれらを使用して起動します (メールは単なる例です):
いくつかの調査を行ったところ、アプリを起動するときに引数を送信できることがわかりました (そのため、dict
上記のコードで var を使用しました)。ただし、これには問題があります: を使用してもNSWorkspaceLaunchWithoutActivation
、Mail.app は起動し、新しい作成ウィンドウでフォーカスされます。なぜそんなことをしているのかわからない。
別のことですが、アプリにフォーカスせずにカスタム引数を正常に送信できた場合、アプリが自分によって起動されたかどうかを確認するにはどうすればよいですか (引数が存在するかどうかを確認してください)。
PS: App Store 対応のメソッドを探しています。
macos - NSApplication が「miniaturizeAll」呼び出しを受信したときの通知
「hide:」を呼び出すと「applicationWillHide:」が呼び出されるように、これは可能ですか?
私のアプリケーションは、使用可能な画面の量に応じてさまざまな量のウィンドウを使用するため、'miniaturizeAll:' が呼び出されたときにこれらの NSWindow インスタンスを縮小しません。
objective-c - NSApplication mainMenu が nil を返す
私が抱えている問題は、プログラムでアプリにメニューを追加できないことです!
私がいる場所は次のとおりです。
アプリ デリゲート applicationDidFinishLaunching で:
ウィンドウを作成し、キーと注文フロントを作成します。
編集:( ここで [NSApplication sharedApplication].mainMenu を出力すると (null) )とにかく...
NSMenu オブジェクトを作成し、[[NSApplication sharedApplication] setMainMenu:myMenu] も試しました [[NSApplication sharedApplication] setMenu:myMenu]
ビルド/実行
メニューがありません!
EDIT2:(まだ理解していない場合:)
osx アプリを作成し、メニュー オブジェクトを削除し、実行します。アプリの名前が表示されたメニューがまだ表示されます。それをクリックすると、青色に変わりますがサブメニューはありません。どうすればそのポインターを取得できますか!
macos - OSXでウィンドウを再度開く正しい方法は何ですか?
Xcode で作成したアプリがあります。ドキュメントベースではありません。
ユーザーがドックアイコンをクリックしたときにウィンドウが再度開くようにするにはどうすればよいですか? Xcode が自動的にくれた nib からすべてを作成しています。
アプリのデリゲートのプロパティを実装applicationShouldOpenUntitledFile:
して呼び出しようとしましたが、それはアプリのアイコンを台無しにします。(これは、ドキュメントのプレビューとして機能するアイコンに関係していると思います。)makeKeyAndVisible
window
いずれにせよ、私は少しググってみましたが、主に Carbon API やドキュメント ベースのアプリへの参照を見つけました。
ウィンドウ作成プロセスは NSApplicationMain とアプリの nib ファイルの間でどのように機能しますか? そのプロセスを複製するにはどうすればよいですか? どこで複製できますか?