問題タブ [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.
objective-c - NSRuleEditorのガイドまたはサンプル?
NSRuleEditor
かなり強力なクラスのように見え、iTunesSmartプレイリストやFinderSmartFoldersのようなものがそれを使用しているように見えます。
(NSSmartRuleEditorと呼ばれるべきだと思います...)
しかし、リファレンスとは別に、何らかのドキュメントはありますか?
ある種のサンプルコードやガイドがあればいいのですが、ADCには何も提供されていないようです。現時点でNSRuleEditor
は、Cocoaで最も文書化されていないコントロールのようです。
コントロールやブログ記事などを使用したオープンソースプロジェクトを知っている人はいますか?
objective-c - NSOutlineViewのデリゲートメソッドでNSButtonCellのタイトルを取得する方法
サブクラスを使用NSButtonCell
して、チェックボックス、画像、およびラベルを同じセルに表示しています。ダブルクリックまたはEnterキーでoutlineViewのラベルを編集したい。
NSButtonCell
サブクラス:
私は常に 1 (ブール値) を取得しています
NSOutlineView
デリゲートメソッド(NSButtonCellのため)ですが、ラベルを編集したいです。
- ラベルを編集するにはどうすればよいですか?
- ダブルクリックの処理方法
- エンターキーを押す前に:
色のテキストを変更する方法の後
? その白い色を表示します。
それは次のようになるはずです (チェックボックス付き)
誰でも私を助けてもらえますか?
objective-c - setHidden:YES の場合、NSComboBox アクション セレクターが起動します。
私はNSComboBoxを持っています。アクションセレクターを設定しました。ボックスが非表示になると、ユーザーがボックスに触れていなくても、セレクターが起動します。はい、隠す必要があります。
NSControl を非表示にすると、セレクターが起動するのはなぜですか? それを修正する最良の方法は何ですか?
更新: メソッドをラップして修正しました。しかし、その理由、またはそれを修正する他の方法を理解したいと思います。
objective-c - 色を反転した NSLevelIndicator に似たカスタム コントロールはありますか?
と同様のコントロールが必要ですが、NSLevelIndicator
色NSContinuousCapacityLevelIndicatorStyle
が逆になっています。のNSLevelIndicator
場合、色は次のようになります。警告レベルまでは緑、警告レベルから危険レベルまでは黄色、危険レベル以降は赤です。これは、たとえば、ボリューム コントロールには問題ありません。しかし、私はガソリンタンクの充填に対応する値を持っています: 満タンのタンクには緑、警告には黄色、空には赤が必要です。の色を変更する手段が見つかりませんでしたNSLevelIndicator
。
それで、私が独自のカスタムコントロールを書き始める前に、NSControl
私が望むことをすでに行っている利用可能な場所はありますか(もちろん、尋ねる前にグーグルで検索しましたが、役に立ちませんでした)
読んでくれてありがとう。
objective-c - NSString drawInRect:withAttributes:'認識されないセレクターがインスタンスに送信されます...'
私は本当に奇妙な何かを得ました:メソッドは原因unrecognized selector sent to instance
になりますが、何もしませんNSLog()
。
カスタムNSControlサブクラスを作成しました。ここで、次のようにカスタムセルを描画しようとします。
そして-[MKMenuCell drawWithFrame:inView:]
:
出力:
ご覧MKMenuCell
のとおり、drawWithFrame:inView:
はと呼ばれます。ただし、そのNSLog()
ステートメントからの出力は表示されません。ここで何が起きてるの?それを解決する方法は?
編集: GDBの出力を見て、初めて何も問題がないことに気づきました。これはそれをさらに奇妙にします。
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:
ですか?
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:
たセルに送信することで部分的に応答します。 "
私が何か不足している場合は親切に教えてください-私はたくさんグーグルで調べましたが、何も役に立ちませんでした。