問題タブ [appkit]

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

objective-c - Mac OSX 用のソフトウェアを開発する動機は何ですか?

私は自分の Mac が大好きで、将来的には Mac 用のソフトウェアを開発することを考えています。あなたがMac Softwareを作っている理由は何ですか? Macがとてもクールだと思うからですか?それとも、市場はとても面白いですか?私たちの多くは知りたいと思いますよね?

私にとっては、先ほど言ったように、それは Mac のクールさです。私は市場について何も知りません。

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

objective-c - NSWindowControllerオブジェクトを解放する責任は何ですか?

次のようなウィンドウを表示するとします。

[[TBAddTaskWindowController new] showWindow:self];

TBAddTaskWindowControllerオブジェクトはどこでリリースされる予定ですか?windowWillCloseで[selfrelease]を呼び出す一般的なソリューションはありますか?

他のオブジェクトがウィンドウを「所有」するのは正しくないと感じます。これは、ユーザーがウィンドウを閉じるまで存在することを意図しているためです。

0 投票する
3 に答える
2628 参照

swift - macOS で最前面のアプリケーションから選択したテキストを取得する方法は?

Safari、Pages、TextEdit、Word など、最前面のアプリケーション ウィンドウで現在選択されているテキストを取得し、そのテキストで何かを行う必要があるアプリケーションにすぐに取り組みます。

私の目標は、できるだけ多くのアプリケーションで機能するソリューションを見つけることです。これまでAppleScriptを使用することを考えていましたが、それでは私のサービスで使用できるアプリケーションの量が制限されてしまいます。少なくとも、Safari、Firefox (AppleScript なし?)、Word、Pages、Excel、TextEdit などの一般的なアプリケーションをサポートする必要があります。

また、 clipboardのコンテンツを一時変数に保持してから、テキストのコピー操作 (Cmd-C) をシミュレートし、テキストを取得してから元のコンテンツに戻すことも考えました。これにより、コピー操作時に [編集] メニュー項目が強調表示される可能性があります。シミュレートされており、私には少しハッキーに思えます。IMO このソリューションは、商用製品には十分ではないようです。

また、将来的にいくつかの追加機能を追加するために、選択以上のもの (つまり、Safari や Word のページの完全なコンテンツなど) を取得したいと考えています。

この動作を実装する方法に関するアイデア/詳細はありますか?

ヒントを事前にありがとう!

注意: 少なくとも 10.4 以降をサポートする必要がありますが、理想的には 10.4 よりも古いバージョンもサポートする必要があります。

アップデート:

私が選んだ解決策: 「責任の連鎖」デザイン パターン (GOF) を使用して、3 つの異なる入力方法 (ペーストボード、AppleScript、およびアクセシビリティ) を組み合わせ、利用可能な最適な入力ソースを自動的に使用します。

NSAppleScript の executeAndReturnError: NSAppleEventDescriptor (「記述子」インスタンスとしましょう) を返すメソッドを使用する場合、[descriptor stringValue] メソッドが何かを返すには、AppleScript で「tell」ブロックの外側で「return someString」を使用する必要があることに注意してください。それ以外の場合は何も返されません。

0 投票する
3 に答える
4682 参照

cocoa - NSLevelIndicator - ココア

NSLevelIndicator をどのように使用できますか? 私はこれに非常に慣れていないので、アプリケーションで進行状況バーを使用する方法についてあまり知りません。

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

objective-c - 画面を記録するためにどのObjective-Cフレームワークを使用する必要がありますか?

pyobjcブリッジとQTKitフレームワークを使用して、PythonスクリプトからiSightからすでに記録しています。

組み込みのiSightの代わりに、画面のビデオをキャプチャするためにどのフレームワーク/デバイス/ ...を使用する必要がありますか?

PS私はLeopard(Snow Leopardではない)を使用しているため、QuicktimeXAPIを自由に使用できません。

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

objective-c - NSApplicationWillTerminateNotification が受信されない

アプリケーションの終了時に実行する必要があるコードがいくつかあります。次のように、コントローラーを NSApplicationWillTerminateNotification に登録します。

これで、アプリを起動して最初の 20 秒以内に終了すると、 applicationWillTerminate呼び出されます。後でアプリケーションを終了しても、終了しません。アプリケーションの何がこの動作を引き起こす可能性がありますか? また、コントローラを NSApplication のデリゲートとして設定しようとしましたが、同じ結果が得られました。何か案は?

ありがとう。

ああ、これは 10.5 SDK を使用した XCode 3.2、Snow Leopard 10.6.1 です。デバッグ ビルドとリリース ビルドの両方で発生します。

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

cocoa - AppKit で UI イベントを無視する

iPhone の UIKit でタッチ イベントを無視したい場合は、次のようにします。

これにより、アプリケーションの状態を変更するユーザーの操作を心配することなく、「無視」呼び出しの間のコードを操作できます。

私の質問は、Mac OS X アプリ (AppKit と UIKit) を作成している場合、どうすればこれを行うことができるでしょうか? 私は基本的に、いくつかの操作中にユーザーを「ロックアウト」したいと考えています(具体的には、ネットワーク呼び出しを行い、状態をすばやく変更すると、大量のネットワーク呼び出しがキューに入れられ、互いにすぐに邪魔になります)。

これを AppKit で手動で管理する必要がありますか? つまり、進行状況バーを表示し、すべての UI 要素を手動で無効にしますか?

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

objective-c - NSBitmapImageRep での大量のメモリ リーク

CGImageRef から構築された NSBitmapImageRep 内のピクセル データを分析するメソッドがあります。関連するコードは次のとおりです。

CGImageRef と NSBitmapImageRep を適切に解放していることはわかっていますが、-bitmapData の呼び出しは呼び出されるたびに約 2 MB リークし、適切に解放する方法がわかりません。何か案は?

更新:重要な点を 1 つ追加するのを忘れていました。メモリ リークは、フル スクリーン アプリケーションが実行されている場合にのみ発生します。通常の使用では、メモリは問題なく解放されます。

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

cocoa - ドキュメントを閉じずに、ドキュメントのウィンドウを閉じて新しいウィンドウを開く

私のアプリはドキュメントベースですが、「ドキュメント」は1つのファイルではなく、2つのフォルダーで構成されています。ドキュメントの初期ウィンドウには、いくつかのファイルピッカーとボタンが含まれています。アクションはそのウィンドウを閉じ、新しいウィンドウを開いて、2つのフォルダー階層間の操作の結果を表示します。(2つのウィンドウのサイズは大幅に異なります。両方のビューをテーブルのタブビューに保持し、それを切り替えるのは簡単ではありません。)

ファイルピッカーウィンドウを閉じて結果ウィンドウを開くアクションメソッドのコードは次のとおりです。

(問題を解決するために失敗した試みで、保持メッセージと解放メッセージを追加しました。)

私の問題は、最初のウィンドウコントローラにドキュメントを閉じないように指示したにもかかわらず、このアクションメソッドが終了した後にドキュメントが解放されて割り当てが解除されることです。(それは問題を解決するための別の失敗した試みでした。)

では、ドキュメントが消滅することなく、同じドキュメントの最初のウィンドウを別のウィンドウに置き換えるにはどうすればよいですか?

0 投票する
5 に答える
20515 参照

macos - デフォルトの URL スキームでの処理方法

アプリで URI (または URL スキーム) のサポートを構築したいと考えています。

私は自分LSSetDefaultHandlerForURLScheme()で実行し+ (void)initialize、特定の URL スキームを自分の にも設定しましたinfo.plistApple Scriptしたがって、 またはのない URL スキームがありますApple Events

myScheme:お気に入りのブラウザーで呼び出すと、システムがアプリをアクティブにします。

問題は、呼び出されたときにスキームを処理する方法です。myScheme:あるいは、が呼び出されたときにアプリが何をすべきかを定義するにはどうすればよいでしょうか。

実装する必要がある特別な方法はありますか、またはどこかに登録する必要がありますか?