問題タブ [nsclipview]
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.
cocoa - NSScrollView を 10.9 以降でドキュメント ビューを中央に配置するにはどうすればよいですか?
NSScrollView をドキュメント ビューの中央に配置する方法の例はたくさんあります。以下に 2 つの例を示します (非常によく似ているため、誰かが出典を明記せずに誰かをコピーしていますが、そこにどのようにあるのかという点です) 。 .com/devosoft/avida/blob/master/apps/viewer-macos/src/main/CenteringClipView.h
これは通常、NSClipView をサブクラス化し、オーバーライドすることによって行われます。
- (NSPoint)constrainScrollPoint:(NSPoint)newOrigin;
ただし、この方法は Mac OS X 10.9 以降では推奨されていません。
今、我々に何ができるだろうか?いやいや~!
macos - オーバーハング サブビューが 2 回作成される例外 MAC
ウィンドウに 2 つのタブ ビュー アイテムを作成している MAC でこの例外が発生しています。各タブにテーブル ビューがあります。私はたくさん検索しましたが、魂を見ることができませんでしたか? 誰でも私を助けることができますか?
objective-c - NSScrollView の混乱
NSScrollView
これがクラスに関するかなり漠然とした質問であることを許してください。それらをたくさん読んだにもかかわらず、私はそれらを本当に理解していません。
を持つNSViewController
サブクラスがありxib
ます。このビューでは、NSScrollView
. IBOutlet
ビューコントローラークラスから接続します。
これは私が混乱するところです。
NSScrollView
documentView
とはどう違いclipView
ますか?スクロールビュー内に追加するxib
と、NSClipView
. なんで?
内のスクロールビューにサブビューを追加したい場合は、直接スクロールビューではなく、のxib
にのみビューをドロップできます。また、サイズを変更すると、ドロップしたサブビューがクリップされ、スクロールバーがスクロールビューに表示されることもわかります。ただし、アプリを実行するとスクロールできません。第二に、とにかくアプリが実行されている場合、サブビューは表示されません。NSClipView
NSScrollView
NSClipView
誰かが NSScrollView の仕組みを説明してくれますか? 私がこれまでに読んだことはすべて、私と一緒にクリックしたわけではありません.
cocoa - NSScrollViewでNSTableViewの描画を制御するには?
水平スクローラーの位置に関係なく、常に同じ列を表示するように NSTableView を取得するにはどうすればよいですか? 一番右の表示列には、カスタム セル ビューがあります。これらのカスタム ビューで描画される内容を水平スクローラーで制御したいと考えています。垂直スクロールは正常に機能するはずです。
私はいくつかのアプローチを試みましたが、あまり成功しませんでした。たとえば、水平スクローラーのノブの比率を制御するには、テーブル ビューを広くしたり、スクロール ビューにドキュメント ビューが実際よりも広いと認識させたりします。1 つの方法は、次のように NSClipView をサブクラス化し、-documentRect をオーバーライドすることです。
ただし、スクローラー ノブは正常に表示され、テーブル ビューを移動せずに右にドラッグできますが、別の方向にスクロールを開始すると、ノブが左端に戻ります。また、水平スクローラーを自動的に表示できないという問題もあります。これは、カスタム クリップ ビューだけでなく、元のクラスでも発生します。これらの問題は関連している可能性がありますか?
また、ドキュメント ビューを、クリップ ビューとテーブル ビューの間のプロキシとして機能するカスタム ビューに置き換えてみました。その -drawRect: は、テーブル ビューの -drawRect: を呼び出します。ただし、何も描かれていません。これは、テーブル ビューにスーパービューがなくなったためだと思います。テーブル ビューがこのプロキシ ビューにサブビューとして追加された場合は、一緒に移動します。水平軸で静止させるにはどうすればよいですか?
繰り返しになりますが、
- 水平スクローラーの位置に関係なく常に同じ列を表示しながら、テーブルビューをスクロール可能にする最良の方法は何ですか?
- スクローラーの位置とノブの比率を取得する最良の方法は何ですか? NSClipView から NSViewBoundsDidChangeNotification のオブザーバーを追加する必要がありますか?
nsview - NSViewのprepareContentInRectでスクロールビューのオーバードローを制御するには?
OSX でのスクロールのパフォーマンスを向上させるために、その使用法をよりよく理解しようとしています。より具体的には、画面の横にある「点滅/ちらつき」を根絶しようとしています。高速にスクロールすると、AppKit は、ビューのオーバードローされていない (準備されていない) 部分、またはビューの誤って準備された部分に遭遇します。バックグラウンドのみ。
私の理解では、preparedContentRect は、スクロールビューのオーバードロー セクション (レスポンシブ スクロールに使用できる領域) を表します。
パート1
preparedContentInRect
の 2 つのサブビュー内にコードを配置しました。それぞれが、スクロール時に documentViews と同じように動作するNSScrollView
フローティング サブビューです。NSScrollView
プログラムのpreparedContentInRect
起動直後に が数回呼び出されます (予想どおり)。次に、準備された領域の最後までスクロールしますが、(予期せずに)準備された領域の端に近づくにつれて、再び呼び出されることはありません。なぜだめですか?ユーザーが UI を操作しなくても (システム アイドル状態) preparedContentInRect
、オーバードロー領域を動的に拡大することはありません。
パート2
preparedContentInRect
(上記のように)必要なときにAppKitの呼び出しに頼ることができなかったので。preparedContentRect
クリップビューからの各通知の後に準備するコードを再編成し、手動でboundsChangeNotification
呼び出しprepareContentInRect
て新しいオーバードロー領域を AppKit に通知しました。
カスタムオーバーライドがAppKitへの手動呼び出しとAppKitからの内部呼び出しを区別できるように、「手動」フラグを含めprepareContentInRect
ました-AppKitがオーバードローを台無しにしないように!!!
残念ながら、prepareContentRect
意図した準備四角形を報告していますが、スクロールすると、意図したように四角形が準備されていないようです-5,040幅ではなく3,500ポイント幅の四角形を準備するため、待機中に恐ろしい背景色に遭遇しますビューの残りの部分をレンダリングします。
正しいオーバードローを取得していないビューに関する唯一の「特別な」ことは、canDrawSubviewsIntoLayer
.
オーバードローに関して、上記で何を誤解していprepareContentInRect
ますか? AppKit がそのままの動作をするのはなぜですか?
swift - NSClipView でビューを正しくスタックできない
このコードは最後のビュー (正しい位置) を表示するだけで、他のビューをペイントするのを忘れているため、このコードに腹を立てています...
問題を見つけるのを手伝ってくれませんか?