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

cocoa - どの NSTableView がコンテキスト メニューを開いたかを知る方法は?

同じコンテキスト メニューを持つ 5 つの NSTableView のインスタンスがあります。メニューがクリックされたというメッセージが表示されたら、それを送信したテーブルを知る必要があります。NSMenu のドキュメントを確認しましたが、メニューを開いたテーブルを確認する方法が見つからないようです..

NSTableView をサブクラス化し、me​​nuForEvent でデリゲートにメッセージを送信することを考えていますが、それが最善の方法でしょうか?

アップデート:

ありがとう Joshua、私は 5 つのテーブルを使用して週 5 日のタスク プランを表示しています。各テーブルは曜日を表し、タスクを追加および削除するためのコンテキスト メニューを追加しました。したがって、ユーザーが平日に「タスクを追加」をクリックすると、どのタスクかを知る必要があります。テーブルビューをサブクラス化し、メニューが開いたときにデリゲートにメッセージを送信することで機能しました。このようにして、コントローラーは、どのテーブルが最後にメニューを呼び出したかを認識します。しかし、これを実現するのに最適な実装とは思えません。問題は UI にあるとおっしゃっていたようですが、どう思いますか? ホセ。

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

cocoa - フチなしNSButtonをクリックすると灰色に変わります

画像セットを備えた3つのNSButtonを使用して小さなアプリケーションを作成しています。これらのボタンには境界線も背景もありません。ただし、ボタンをクリックすると、灰色の長方形に変わります。

どうすればこれを修正できますか?ありがとう。

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

objective-c - アプリのフル キーボード アクセスを無効にする

「フル キーボード アクセス」(システム設定 -> キーボード -> (ラジオ) すべてのコントロール) を API で制御できますか? アプリでこれがオンになっていると、大きな問題が発生します(ボタンが期待どおりに機能しないなど...カスタムUIがあります)

よろしく、 エリック

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

iphone - iOSとMacOSの両方で機能するクラスの作成

iOSとMacOSの両方のアプリケーションで使用できるクラスを作成するための良い方法は何ですか?私はここで完全なクロスプラットフォームUIソリューションを取得しようとはしていません。ただ、Macで実行されているサポートアプリケーションでiPhoneアプリからいくつかのモデルクラスを使用する方法です。これらのクラスの一部は、MacOSでコンパイルするためにいくつかの小さな変更が必要です。これはマクロの必要性のようですが、どのマクロが一般的に使用されているのかわかりません。任意の提案や共有された経験をいただければ幸いです。

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

cocoa - Cocoa (Snow Leopard) NSTextView の textStorage -setAttributes:range: 文字を削除します!

何が間違っているのかわかりません。私は NSTextView を持っており、その textStorage 属性のデリゲートとして登録されています。受け取っ-textStorageDidProcessEditing:notification:たら、テキスト内の文字の範囲に属性を適用しようとしています。それは確かにキャラクターに「何か」をしますが、私が期待するものではありません...彼らはただ消えます!

高度に抽出されたコード例。これにより、テキスト フィールドの 2 番目の文字が常に赤になります。

代わりに、シーケンス「abcdefg」を入力すると「a」が表示され、次に「b」を押すと何も起こらないように見えますが、「cdefg」を押すと通常どおり入力が行われ、最終結果は「acdefg」になります... 「b」がありません!

バックスペースを押し始めると、「b」が実際にそこにあるが、描画されていないかのように、バックスペースを7回押す必要があります(「b」を削除するとカーソルが停止し、次のバックスペースで「a」を削除します期待される)。

ビューが描画される前-setAttributes:range:に同じ方法を使用して、ビュー内のデフォルトのテキストに属性を適用すると、期待どおりに動作します。

手がかりはありますか?NSTextStorageDelegate:)のかなり通常の使用のようです。

-setNeedsDisplayテキストフィールドを呼び出してみましたが、役に立ちませんでした。

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

cocoa - appkitアプリケーションのプールの自動解放

自動リリースプールがAppKitアプリで作成およびリリースされるタイミングを正確に理解するのに苦労しています。

たとえば、initをオーバーライドするApplicationControllerクラスがある場合、開始前に作成され、終了後にドレインされる自動解放プールはありますか?

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

c++ - プラグイン可能な Cocoa アプリが C++ API のみを公開している場合、プラグイン内でウィンドウを表示するにはどうすればよいですか?

C++ プラグイン API を使用して、Mac 上の FileMaker Pro 11 Advanced 用のプラグインを開発しています。XIB ファイルを介してロードされたオンスクリーンを表示したいのですがNSWindow、XIB ファイルでウィンドウの「Visible at Launch」プロパティを YES に設定しないとウィンドウを表示できません。

やっています:

問題は、これによりウィンドウが画面に表示されないことです。私も試しました:

と:

と:

私は Objective-C と Cocoa を初めて使用するので、Mac での GUI の作成に関する基本的なことをまだ学んでいます。ただし、ウィンドウ コントローラ、ウィンドウ、さらにNSAppは FileMaker Pro に「接続」されているかどうかはわかりません。NSAppつまり、私のファイルが FileMaker のファイルと同じかどうかわかりませんNSApp。これは愚かな質問ですか?

NSWindowController「起動時に表示」が「はい」に設定されている場合、画面にウィンドウを正常に表示するにはどうすればよいですか? ウィンドウを画面に表示するためだけに、そのプロパティを使い続けたくありません!

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

cocoa - NSWindowの描画時に一部のユーザーでCGContextSetCompositeOperationエラーが発生する

私が書いたシンプルな10.6Cocoaアプリは、基本的にいくつかのボタンとテキストを備えた通常のウィンドウを描画し、何百ものコンソールログメッセージを吐き出してきました。

drawRect:を直接呼び出さず、更新する必要がある場合は常にsetNeedsDisplay:YESを使用します。

興味深いことに、このエラーはすべてのマシンで発生するわけではありません。約50%がエラーになります。ただし、どちらの場合もプログラムは正常に動作します。

このエラーが何を意味するのか、どこから発生しているのか、そしてもっと重要なことに、どうすればそれを抑制/取り除くことができるのかについて、誰かが手がかりを得ましたか?

ありがとう

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

macos - 2つのテーブルのリンクスクロール

Cocoa AppKitで2つのNSTableView(またはその基礎となるNSScrollView)のスクロールをリンク(同期)するにはどうすればよいですか?

一方のスクローラーをもう一方のスクローラーに設定しようとしましたが、これにより2番目のテーブルがスクローラーの制御を失います(つまり、テーブルの横に表示されなくなります)。

以前の質問はUIKitについてこれに対処しましたが、AppKitNSScrollerは同等のインターフェースを提供していないようです。

助けていただければ幸いです。

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

objective-c - NSPasteboard と TextEdit の奇妙な相互作用

アプリの 2 つの場所から文字列をドラッグ アンド ドロップしています。1 つはカスタムから、NSViewもう 1 つはNSTableDataSourceデリゲートからです。最初のものは TextEdit アプリケーションにテキストをドラッグできますが、2 つ目はできません。両方から Terminal や TextMate などの他のアプリにドラッグできます。私が知る限り、両方にほぼ同一のコードを使用しています。

私は何が悪いのかを理解しようとしています。一部のアプリにドラッグできるため、原則として機能しています。しかし、TextEdit では何が起こっているのでしょうか?

カスタム NSView から:

表デリゲートから:

最初の pboard のタイプを出力すると、次のようになります。

そして2番目に:

同様に、最初のコンテンツ:

そして第二に

私が知る限り、この 2 つは同じように動作するはずです。しかし、そうではありません。アイデア?