問題タブ [nscontrol]

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 に答える
2926 参照

objective-c - NSRuleEditorのガイドまたはサンプル?

NSRuleEditorかなり強力なクラスのように見え、iTunesSmartプレイリストやFinderSmartFoldersのようなものがそれを使用しているように見えます。
NSSmartRuleEditorと呼ばれるべきだと思います...

しかし、リファレンスとは別に、何らかのドキュメントはありますか?

ある種のサンプルコードやガイドがあればいいのですが、ADCには何も提供されていないようです。現時点でNSRuleEditorは、Cocoaで最も文書化されていないコントロールのようです。

コントロールやブログ記事などを使用したオープンソースプロジェクトを知っている人はいますか?

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

objective-c - NSOutlineViewのデリゲートメソッドでNSButtonCellのタイトルを取得する方法

サブクラスを使用NSButtonCellして、チェックボックス、画像、およびラベルを同じセルに表示しています。ダブルクリックまたはEnterキーでoutlineViewのラベルを編集したい。
NSButtonCellサブクラス:

私は常に 1 (ブール値) を取得しています

NSOutlineViewデリゲートメソッド(NSButtonCellのため)ですが、ラベルを編集したいです。

  1. ラベルを編集するにはどうすればよいですか?
  2. ダブルクリックの処理方法
  3. エンターキーを押す前に:
    ここに画像の説明を入力

色のテキストを変更する方法の後
ここに画像の説明を入力 ? その白い色を表示します。

それは次のようになるはずです ここに画像の説明を入力(チェックボックス付き)

誰でも私を助けてもらえますか?

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

objective-c - setHidden:YES の場合、NSComboBox アクション セレクターが起動します。

私はNSComboBoxを持っています。アクションセレクターを設定しました。ボックスが非表示になると、ユーザーがボックスに触れていなくても、セレクターが起動します。はい、隠す必要があります。

NSControl を非表示にすると、セレクターが起動するのはなぜですか? それを修正する最良の方法は何ですか?

更新: メソッドをラップして修正しました。しかし、その理由、またはそれを修正する他の方法を理解したいと思います。

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

objective-c - 色を反転した NSLevelIndicator に似たカスタム コントロールはありますか?

と同様のコントロールが必要ですが、NSLevelIndicatorNSContinuousCapacityLevelIndicatorStyleが逆になっています。のNSLevelIndicator場合、色は次のようになります。警告レベルまでは緑、警告レベルから危険レベルまでは黄色、危険レベル以降は赤です。これは、たとえば、ボリューム コントロールには問題ありません。しかし、私はガソリンタンクの充填に対応する値を持っています: 満タンのタンクには緑、警告には黄色、空には赤が必要です。の色を変更する手段が見つかりませんでしたNSLevelIndicator

それで、私が独自のカスタムコントロールを書き始める前に、NSControl私が望むことをすでに行っている利用可能な場所はありますか(もちろん、尋ねる前にグーグルで検索しましたが、役に立ちませんでした)

読んでくれてありがとう。

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

objective-c - NSString drawInRect:withAttributes:'認識されないセレクターがインスタンスに送信されます...'

私は本当に奇妙な何かを得ました:メソッドは原因unrecognized selector sent to instanceになりますが、何もしませんNSLog()

カスタムNSControlサブクラスを作成しました。ここで、次のようにカスタムセルを描画しようとします。

そして-[MKMenuCell drawWithFrame:inView:]

出力:

ご覧MKMenuCellのとおり、drawWithFrame:inView:はと呼ばれます。ただし、そのNSLog()ステートメントからの出力は表示されません。ここで何が起きてるの?それを解決する方法は?

編集: GDBの出力を見て、初めて何も問題がないことに気づきました。これはそれをさらに奇妙にします。

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

objective-c - NSCell でどのメソッドを呼び出す必要がありますか

カスタム NSCells を使用してカスタム NSControl を作成しています。これはコントロールなので、マウスに応答する必要があります。私は自分のコントロール上に NSTrackingArea を作成し、-mouseEntered:-mouseExited:を実装し-mouseMoved:ました。(そして-mouseUp/Down:、 を実装する必要がありますが、そこで何をすべきかわかりません。そのため、今のところ、これらのメソッドをまだオーバーライドしていません。) これらのメソッドでは、マウスが現在どのセルにあるかをうまく判断できます。今、私は2つの質問があります:

  • これはマウスを追跡するための良いアプローチですか? そうでない場合、代わりに何をすべきですか?
  • マウスがセルに入ったとき、マウスがセルを離れたときなど、マウス クリック時に NSCell でどのメソッドを呼び出す必要がありますか? Apple のドキュメントは、これについてあまり明確ではありません。

つまり、基本的には、NSCell でマウス イベントに応答させるには、いつどのメソッドを呼び出せばよいのでしょうか?

編集:
ドキュメントを読み直して、 NSCell-trackMouse:inRect:ofView:untilMouseUp:と override -startTrackingAt:inView:-continueTracking:at:inView:およびを呼び出す必要があると思います-stopTracking:at:inView:mouseIsUp:。ここでも 2 つの質問があります。1) ドキュメントは、マウスが押されたときにのみ呼び出されるという印象を与えます。あれは正しいですか?では、代わりに何をすべきですか?2) どこで、いつ NSCell に電話すればよい-trackMouse:inRect:ofView:untilMouseUp:ですか?

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

objective-c - -(BOOL)trackMouse:inRect:ofView:untilMouseUp: 呼び出されない

NSControl をサブクラス化してカスタム コントロールを取得し、NSCell をサブクラス化してカスタム セルを取得し、カスタム セルでオーバーライドさ-(BOOL)trackMouse:inRect:ofView:untilMouseUpれたメソッドと必要なメソッドをオーバーライドし、customControl でオーバーライド+ (Class)cellClassして customCell を返しました。

セルはコントロールで正常に描画され、有効に設定され、無効に設定されても正常に動作しますが、マウス イベントがトリガーされません。-(BOOL)trackMouse:inRect:ofView:untilMouseUp: デバッグ中に、呼び出されないことに気付きました。「コントロールとセルのプログラミングガイド」に従って -

「コントロールはセルの動作を管理します。NSView から継承することにより、コントロールはユーザー アクションに応答し、画面上の表現をレンダリングする機能を引き出します。ユーザーがコントロールをクリックすると、クリックされtrackMouse:inRect:ofView:untilMouseUp:たセルに送信することで部分的に応答します。 "

私が何か不足している場合は親切に教えてください-私はたくさんグーグルで調べましたが、何も役に立ちませんでした。