問題タブ [nsscroller]
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 - NSTextViewのNSScrollViewスクローラーでマウスホバー拡張効果を無効にする方法は?
これがNSTextView
スクローラーの通常のサイズです
: テキストビューのスクローラーをホバーするとどうなるか:
ただし、この「拡張」効果は必要ありません。どうすれば削除できますか? これを実行する方法を検索しようとしましたが、何も見つかりませんでした。ユーザーがホバーしても、常に通常のスクローラーサイズ(より薄いサイズ)にしたいだけです。これは可能ですか?
ありがとう
cocoa - NSScroller は自動的に非表示にならず、自分自身のために新しい NSTableColumn を生成します
の何が問題なのかわかりませんNSScrollers
。
不特定の時間以来 (私はアプリのソース コードで多くのことを変更してきましたが、Xib の設計では変更していません)、「」で構成されているすべてNSScrollers
の「 」は、- all で、別の で生成されます。TableViews
OutlineView
AutoHides
NSTableColumn
この動作をどこで調べ、どのようにデバッグするかについての手がかりはありませんNSScrollViews
。
の適切な動作を妨げる可能性のある奇妙なカテゴリは作成していませんtableViews
。
objective-c - NSScroller の色を変更するには?
スクローラー自体の色を変更しようとしています。drawKnob の周りに何かを上書きする必要があるようですが、適切と思われる方法が見つかりませんでした。
私が考えた1つの方法は、新しいスタイルを挿入してスクローラーにそれを使用させることでしたが、NSScrollerヘッダーでNSColorについて何も見つかりませんでした。
何か案が?
objective-c - NSTextView での個別の (行ごとの) スクロール
NSTextView オブジェクトで行ごとのスクロールを実装するにはどうすればよいですか? ユーザーがスクロールしようとする方法に関係なく、スクロール ノブをドラッグするか、トラックパッドで 2 本指のスクロール ジェスチャを使用するかに関係なく、動作する必要があります。さらに、スクロール ノブは常に個別のステップで移動する必要があります。(これは、まさに Apple の端末エミュレーターが動作する方法です。)
私が最初にやろうとしたことは、NSTextView をサブクラス化し、adjustScroll: (NSView から継承したもの) をオーバーライドすることでした。
ただし、スクロールノブを使用すると、行ごとにスクロールするだけです。偶然、NSScrollView をサブクラス化すると、トラックパッドでスクロールするときにも行ごとにスクロールできることがわかりました。実際には何もしていないように見えますが (なぜこれが機能するのかは謎です)、オーバーライドされたメソッドは次のとおりです。これらは:
ただし、スクロール ノブは引き続き動きます。NSScroller をサブクラス化して setDoubleValue をオーバーライドする必要がありますか (それを試してみましたが、うまく機能しなかったため、解決策が難しいと感じましたが、可能かもしれません)、または、reflectScrolledClipView: をサブクラスで NSScrollView にオーバーライドできますか (それは機能しませんでした)まったく)、またはより良い解決策はありますか?
cocoa - スクロール ビューでのビューのセンタリング
の中に がNSView
埋め込まれていNSScrollView
ます。
アプリで倍率を変更するとき、制約を調整して を呼び出してビューのフレームを変更していますlayoutSubtree:
。
埋め込みビューのサイズを変更した後、ビューの同じ領域を中央に配置したいと思います。
次のコードはうまくいくはずです -
スクローラーは実際に更新されたように見えます。ただし、スクロールビューは変更された位置を認識していないようです。
(更新された) ビューを手動でスクロールし始めると、コードを介して変更された位置から、ビューのスクロール位置を反映している実際の位置にスクロール バーの位置が「ジャンプ」します。
reflectScrolledClipView:
コードでスクローラーを設定した後、の逆が必要なように感じます..
擬似コード: