問題タブ [nstrackingarea]
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.
nstextview - カーソルをテキストビュー上の人差し指に設定します
NSTextView をサブクラス化せずに、カーソルをテキスト ビュー上の人差し指に設定する方法はありますか?
NSTrackingAreas についてよく読み、多くの例をテストし、さまざまなトラッキング オプションを設定し、さまざまなメソッドを実装しましたが、カーソルは依然として I ビームのままです。これは AppKit の自動機能であると読みましたが、これを防ぐにはどうすればよいですか?
ありがとうございました!
objective-c - 描画座標を反転したNSViewの高さ方向
InterfaceBuilderのウィンドウにドラッグしたカスタムビューをサブクラス化しました。マウスがビューの境界に入ると、ビューの高さを変更したいと思います。私の問題は、高さの変化が下向きではなく上向きであるということです。ビューの座標をで反転させてみ(BOOL)isFlipped
ましたが、高さの変化の方向には影響しません。下方向の高さを変更する方法について何か助けはありますか?
objective-c - NSCollectionView+NSScrollView でのマウスオーバー
10.7 以降のプロジェクトで、マウスがコレクション ビュー アイテムのビューの境界内にあるときに、NSCollectionViewItem で UI 要素を有効にしようとしています。NSCollectionView に値を設定するコレクション ビュー アイテムごとに、その境界を使用して個々の NSTrackingArea を作成するカスタム ビューがあります。
トラッキング エリアは、NSCollectionView コンテンツがスクロールされるまでうまく機能します。スクロール中およびスクロール後にトラッキング領域をリセットする必要があることは明らかです。いくつかの方法で NSTrackingAreas を無効にして再作成しようとしました。
しかし、これらの試みは不完全でバグのある結果をもたらしただけでなく、スクロール中の追跡領域の絶え間ない再計算 (ala scrollwheel:) は不要のようです。代わりに、スクロール中にすべてのトラッキング領域を無効にできるように、スクロール イベントの開始とオフセットをキャプチャする効果的な方法 (iOS で簡単に実行できます) があれば便利です。scrollview の contentView で NSViewBoundsDidChangeNotification を使用すると、スクロールが発生していることがわかりますが、いつ開始または停止するかはわかりません。
NSScrollView からスクロールの開始と終了の通知を取得するには、深いサブクラス化が必要ですか、それとも他に何か見落としがありますか? より有望な、まったく異なるアプローチがありますか?
nsview - NSTrackingArea を使用した NSView でのアリの行進
この「wall 'o コード」を、カスタム NSView 内で領域選択を行う (ほぼ) 完全な手段として提示し、その後、「行進アリ」の四角形を展開/移動する機能を備えています。
うまくいけば、そこにいる誰かがそれが役に立つと思う.
「introThumbRect」への最初の呼び出しでボールが転がります。長方形の辺は、マウス カーソルが適切に変化することで拡大できます。選択長方形も移動できます。初期/結果の四角形は、ビューの「thumbRect」プロパティにあります (「fullImage」座標系を基準にします)。「cropPt」値は、表示された画像「fullImage」の左上です。ここでは、(0,0) であると仮定します。
私が抱えている問題の 1 つは、マウスのドラッグが発生すると (つまり、辺が拡大されたり、四角形が移動されたりすると)、マウス カーソルを元のドラッグ状態に維持するために戦っているということです。矢印カーソルに戻したいのですが、たとえば、開いた手のカーソルとして維持する必要があります。これはトラッキング領域を再計算した結果だと思いますが、XCode はカーソルの状態を「追跡」しないため、このような問題をデバッグすることは事実上不可能です。
誰かがそのマイナーなバグの修正を手伝ってくれるなら、それは素晴らしいことです.
objective-c - NSTableCellView でのスクロール中のマウス イベントの追跡に関する問題
カスタム テーブル セル ビューにポップオーバー ボタンがあり、マウス カーソルが 1 つのセルの上に移動すると、セルのこれらのボタンが表示され、この 1 つのセルだけにボタンが表示されます。マウス カーソルをゆっくり動かすと、すべて正常に動作しますが、中央のマウス ラジエーターでテーブル ビューをより速くスクロールすると、ポップオーバー ボタンで表示されるセルが多すぎます。どういうわけか、スクロール中にマウス イベントが正しく追跡されません。このトラッキング コードは、Apple Examples のライブラリから取得しました。この問題について何か提案をいただけますか?
そして、ここに印刷されたログがあります:
cocoa - NSTrackingArea の mouseEntered/Exited をアニメーションで実装するには?
ユーザーが特定の領域にカーソルを合わせると、新しいビューが引き出しのようなアニメーションで表示される機能を実装したいと考えています。また、ユーザーが特定の領域を離れると、ドロワーはアニメーションとともに消えます。これはまさに、OS X の画面の下部にカーソルを合わせると表示されるもので、Dock がアニメーションで表示および非表示になります。
ただし、アニメーション付きの機能を実装すると、アニメーションが完了する前に特定の領域に再度入ると、正しく動作しません。mouseExited:
これが私のコードです:
このコードでは、位置drawerView
を変更してをアニメーション化しx
ます。ただし、前述したように、トラッキング エリアに入ってからトラッキング エリアを離れると、ドロワーは正常に機能します。ただし、リーブオフ アニメーションが完全に完了する前にトラッキング エリアに再び入った場合は、この限りではありません。
もちろん、アニメーションの長さを のように短く設定すると0.1
、これはほとんど発生しなくなります。でもアニメーションでビューを動かしたい。
私がやりたいのは、ビューが完全に消えていなくても、drawerView
再び開始を開始することです。それを行うための練習はありますか?