問題タブ [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 に答える
1490 参照

cocoa - Cocoa カスタマイズ システム コンテキスト メニュー

実行中のすべてのアプリケーションのコンテキスト メニューにカスタム要素を追加する必要があります。可能ですか?のようなもの: テキストを選択し、コンテキスト メニューにアプリケーション アイテムだけでなく、アプリケーションの追加アイテムがあり、このアイテムをアプリに接続する必要があります。すべてのアプリケーションで機能する必要があります。

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

macos - OSX 10.6 でのアプリキットの例

Preview.app を再発明しようとしています。/Developers/Examples/AppKit にあるいくつかの例が役立つと言われています。しかし、私の 10.6 システムでは、そのようなフォルダーはありません。

例は移動しましたか?私のインストールはどういうわけか不完全ですか?10.5 システムからコピーしたサンプルは動作しますか?

ありがとう

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

objective-c - NSScroller をサブクラス化して、右下隅にある白い四角形を取り除くにはどうすればよいですか?

NSScroller のサブクラスのような iTunes を作成しましたが、NSScrollView または NSTableView で水平スクローラーと垂直スクローラーの両方が表示されると、右下隅に醜い白い四角が残ります。カスタム描画をどこに追加して、それをよりきれいなもので埋めるかについての手がかりを誰かが持っていますか?

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

objective-c - シート表示時のアニメーション(ココア)

ココアでシート、特にアニメーションを表示するときに質問がありました。素敵なアニメーションがある場合とない場合のシート(プレーンNSWindow / NSPanel)を表示するにはどうすればよいですか?これはNSSavePanel/NSOpenPanelに対して自動的に行われますが、InterfaceBuilderで作成した標準のNSWindow/NSPanelシートに対して適切なアニメーションを機能させることができません。(アニメーションと言うときは、Safariの環境設定の[セキュリティ]タブにある[Cookieを表示]ボタンをクリックします)

ありがとう、レベッカ。

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

objective-c - NSViewController はバインディングのメモリ リークをどのように回避しますか? 【サンプルアプリあり】

私は独自のバージョンの NSViewController を実装しようとしています (後方互換性のため)、バインディングで問題が発生しました: バインディングはターゲットを保持するため、ファイルの所有者を介してバインドするたびに円を保持します。

だから私はスーパービューからビューを明示的に削除し、トップレベルのオブジェクトを解放するだけでよいと考えました。これでバインディングが処理されます。これは、コントローラーがビューを保持していないためです。どこかに行って。しかし、何らかの理由で、私のビュー コントローラーはまだ解放されません。問題を示すサンプルアプリを次に示します。

http://dl.dropbox.com/u/34351/BindingsLeak.zip

ビルドして起動し、Cmd-K (「編集」メニューの「ニブの作成」) を押して、空のウィンドウに NIB をロードします。Cmd-K をもう一度押して、最初のビュー コントローラー (TestNibOwner) を解放し、新しいビュー コントローラーをロードします。ただし、古いView Controllerの割り当てが解除されることはありません。

チェックボックスの「値」バインディングを削除すると、問題なく解放されます。

release/retain/autorelease のオーバーライドにブレークポイントを設定すると、_NSBindingInfo が TestNibOwner を保持していることがわかりますが、リークの場合には決して解放されません。

誰でもこれを修正する方法を知っていますか?

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

objective-c - アーロンヒレガス_MacOSX用のCocoaプログラミング_第9章質問

アーロンヒレガスのMacOSX用Cocoaプログラミングの第9章、「挿入時に編集を開始する」のセクションで、彼はまさにそれを行う方法を説明しています。しかし、私を混乱させたのは、彼が他のことをたくさんしたことでした。完全なコードリストは次のとおりです。

これに関して2つの質問があります。

1)あなたはあなたがそれらすべてのことをすることになっていることをどうやって知っていますか?Appleのドキュメントに「チェックリスト」などはありますか?経験?

2)それでもすべてのメソッドを自分で書き直す必要がある場合、これはアレイコントローラーの目的全体を無効にしませんか?

編集:私は主に彼がこれらの行を入れることをどのように知っていたのか疑問に思っています:(他のすべてはかなり基本的で明白なので)

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

objective-c - Xcode の補完で変数の型が認識されない

私はオブジェクトを作成しています:

(このメニューをプログラムで作成していて、Nib ファイルを使用していないという事実は無視してください。そうすることの欠点は理解しています)

メニューバーにメニューが正しく表示されます。

ただし、次のようなインスタンスメソッドを呼び出そうとすると:

XCode はいくつかの補完を提供しますが、NSMenu からのものはないようです。
私は両方を試しました

インスタンス メソッドは確かに NSMenu.h にあり、前述のとおり、メニューがインストールされます。メニュー項目をインストールしないだけです。それに加えて、補完がないため、明らかに有効であるにもかかわらず、私の appMainMenu が NSMenu オブジェクトとして認識されていないと思います。

私が見逃している明らかなことは何ですか?

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

iphone - 「bezierPathWithOvalInRect」エラーの引数 1 の互換性のない型

次のコードがあります。

コンパイルすると、「'bezierPathWithOvalInRect' エラーの引数 1 の型に互換性がありません」と表示されます。ただし、これを行うと、機能します。

問題は何ですか?

ありがとう。

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

objective-c - バインディングとターゲット/アクション?

現在、NSUserDefaults に保存される色を追跡するカラー ウェルがあります。NSUserDefaultsController にバインドされています。ただし、それに応じてビューを更新できるように、色の変更もリッスンしたいと考えています。そのため、バインディングに加えて、色で通知を送信する設定コントローラーに、色のウェルへのターゲット/アクションを追加しました。

1) ターゲット/アクションとバインディングの両方を持つことはどのくらい安全ですか? 遅れたり、同期がずれて異なる値を報告したりする可能性はありますか?

2) IBAction メソッドで色を取得する場合、ユーザーのデフォルトまたはカラー ウェルから取得する必要がありますか?

これが私の colorChanged: アクションです:

だから私はこれを行う必要があります:

また:

ありがとう!

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

cocoa - カスタム NSPopUpButtonCell drawImage:withFrame:inView が呼び出されない

カスタム NSPopUpButtonCell があり、drawImage:withFrame:inView をオーバーライドしようとしています。奇妙なことに、drawImage メソッドが呼び出されることはありませんが、画像は画面に表示されます。私は何が欠けていますか?

セルが正しくインストールされていることを確認しました - drawWithFrame:inView:controlView メッセージが表示されます。

画像のみを補正しようとしていることに注意してください。グラデーション スタイルのボタンが適切に画像の中央に配置されていません (本来あるべき場所の左に 1 ピクセルです)。