問題タブ [nsscrollview]

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

objective-c - NSWindow の NSScrollView

NSWindow 内に NSScrollView がありますが、無効になっているようです。動作するように見えますが、スクロールバーがマウスやスクロール ホイールに反応しません。

新しい XCode プロジェクトのウィンドウ内にまったく同じ NSScrollView を配置すると、完全に機能します。スクロールが機能しないウィンドウの作成方法について何かがあります。

私はそれをこの例に単純化することができました:

何か案は?

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

objective-c - NSScrollView の問題

使用しようとしている NSScrollView にいくつか問題があり、助けが必要です。NSView、NSScrollView、およびその他のいくつかのガイドとリファレンスを、ここでの質問と cocoadev とともに読みましたが、まだこれらを理解できません。

(私のビュー サブクラスのコードは以下にあります。)

これに関する私の全体的な目標は、PC 専用のニードルポイント チャート メーカーである KGChart のようなインターフェイスです。( KGChart ウェブサイト)

  1. スクロール ビューで描画したものを保持するにはどうすればよいですか? 私の -drawStitch メソッドは、マウス イベント中に実行され、スクロールビューのドキュメント ビューにシンボル (現在は「+」が付いた黒のみ) を持つ四角形を描画します。見えなくなって元に戻すと、消えてしまい、どうにかして保持する必要があります。私の考えは、ステッチを追跡するために 2D 配列を試すことですが、大きなキャンバスではパフォーマンスが低下すると思います (2,000x2,000 を実行したいのですが、500x500 で解決します)。

  2. 私のプログラムを実行している写真を見ると、グリッドの色の違いがわかります。グリッドを描画するコードは -drawRect にあり、色は grayColor として設定されています。プログラムが起動すると、目に見えるグリッドは明るい色ですが、スクロールすると表示されるキャンバスの部分は暗くなります。-drawRect が呼び出されてグリッドが再描画されることに関係していると思いますが、不透明度がすでに 1.0 になっているはずなので、ストロークが暗くなる理由はわかりません。また、元のフレームを完全にスクロールして戻ると、グリッドも暗くなります。

  3. drawRect にないプログラムの最初にグリッドを描画して、再描画されないようにする方法はありますか? -lockFocus でも -awakeFromNib と -initWithFrame を試しましたが、うまくいきませんでした。描画するフレームがなかったので、最初のものはおそらくうまくいかなかったと思います。

  4. 最終的には塗りつぶしツールとか色々調べないといけないので、これはCore Graphicsとか使った方がいいですか、それとも通常のAPIでいいですか?私はCGよりも後者をよく知っているので、後者を使用したいと思いますが、それについても少し読みました.

最終的なメモ: 私はガベージ コレクションを使用しており、ビューとそれが含まれるウィンドウを反転させました。

実行中のプログラムの画像:

実行中のプログラムの画像

明らかに、私はこれにかなり初心者なので、すべての助けに感謝します!

0 投票する
3 に答える
1476 参照

macos - 2 つの NSScrollView を同期する

ドキュメントSynchronizing Scroll Viewsを読み、ドキュメントとまったく同じようにしましたが、問題があります。

NSTableView と NSTextView を同期したい。最初にNSTableViewにNSTextViewを監視させ、TextViewをスクロールするとすべて問題ありませんが、TableViewをスクロールしようとすると、TableViewが最初に別の場所(おそらく数行後方)にジャンプし、その場所からスクロールし続けることがわかりました.

この問題は、TextView に TableView を監視させた後でも存在します。

誰が何が問題なのか知っていますか?TableView と TextView を同期できませんか?

編集: OK、TableView が最後のスクロール以降の場所に戻ることがわかりました。たとえば、TableView の一番上の行が 10 行目で、TextView をスクロールすると、TableView の一番上の行が 20 行目になり、TableView をもう一度スクロールすると、TableView は最初に 10 行目に戻ってからスクロールを開始します。

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

objective-c - 日付を使用して NSSCrollView をフィルター処理する

日付列を使用して NSScrollViews コンテンツをフィルタリングする際に問題が発生しています。

NameAccountNumberDateOfPurchaseなどのいくつかの属性を含むエンティティがあります。このエンティティは NSArraycontroller にバインドされています。

また、列がこの NSArrayController にバインドされている NSScrollView があります。

問題は、この NSScrollView レコードをフィルタリングして、2 日付の間隔で制限されているレコードだけを表示することです。(例: 2010 年 10 月 2 日以降、2011 年 5 月 5 日以前)

これを行うにはどうすればよいですか?

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

cocoa - アトミックにスクロールとズームをアニメーション化するにはどうすればよいですか?

アプリケーションにカスタム ビューがあります。これは、レイヤーに支えられ、NSScrollView. ユーザーがズームインできるようにします (これは、カスタム ビューのサイズを大きくすることで実現されます)。ただし、任意のポイントにズームインするのに問題がありNSScrollViewます。これは、新しいスクロールポイントにポイントする前に、ビューが邪魔になり、ビューが (通常はビューの原点に) ジャンプするためです。を使用したいのCAScrollLayerですが、ズームを正しく使用してスムーズに移動できることはわかっていますが、組み込みのスクロール機能がすべて失われます。

CAScrollLayer内でNSScrollView活用する方法はありますNSClipViewか? そうでない場合、CAScrollLayer実際にはどのような目的に役立ちますか? 別のアプローチで、ビューのサイズとスクロールポイントをアトミックに変更してアニメーション化することは可能ですか?

要するに、CAScrollLayerまったく役に立たない、またはほとんど役に立たない?

アップデート

CALayerビューのコンテンツを表示するサブクラスを作成することで、内側のビューのジャンプが少なくなりました。レイアウトの制約でサイズ変更するのではなく、オーバーライドでサイズ変更します-resizeWithOldSuperlayerSize:。ただし、フレーム サイズとビューの原点を同時に変更して、スムーズなアニメーションを取得することはまだできません。探しているものを把握するには、プレビューで画像を開き、ズームインまたはズームアウトします。画像の中心をスムーズにズームします。

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

cocoa - NSTableViewの再描画で表示が更新されず、選択が固定されます

私はこの問題の解決策を知っていますが、誰かが私にこの解決策を説明してくれるかどうか興味があります。また、この問題についての言及がオンラインで見つからなかったため、これを公開したいと思いました。追跡するのに数日かけて数時間かかりました。再描画とその選択に関して奇妙な動作をするNSTableViewがあります。問題は次のようになります。

テーブルの内容は、画面に表示されるとすぐに表示されるのではなく、フェードインします。コンテンツをスクロールすると、新しく表示される行もフェードインします。選択(単一または複数)を行って画面からスクロールすると、最初の選択(最初の選択に追加するのではなく、置き換える必要があります)を実行します。選択が正しくクリアされません。スクロールして戻ると、新しい選択に加えて、まだそこにあります。これは表示の更新の問題であり、選択の問題ではありません。つまり、新しい選択が有効で、間違って表示されるだけです。

バインドしていたNSArrayController、基になる配列、並べ替え、すべての接続、設定などを介してこれを追跡しましたが、それはすべてそれとは関係ありません。

問題を解決したのは次のとおりです。ビューエフェクト(右端)インスペクターで、ウィンドウのメインビューの[コアアニメーションレイヤー]のチェックを外します。

誰かがここで何が起こっているのかを説明し、おそらく解決策を改善できますか?

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

objective-c - 単一のスクロール可能なNSScrollViewにNSTextViewおよびNSMatrixコントロールを追加するにはどうすればよいですか?

私はMac開発に不慣れです。

1つのScrollableNSScrollViewに3つのコントロールを追加したいと思います。

1)NSTextView。2)NSMatrix。3)NSTextView。

nstextviewのテキストは動的な高さである可能性があることに注意してください....そしてtextviewsのスクロールがあってはなりません。

これが私が探しているもののスクリーンショットです-

これらの3つのビューをnsscrollviewに追加するにはどうすればよいですか?助けてください!

アップデート1-これらのコントロールをNSViewに追加できますか?

ここに画像の説明を入力してください

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

objective-c - Lion に隠されているスクロールバー。トラックパッドを使用していない場合、水平方向にスクロールするにはどうすればよいですか?

ウィンドウの下部にタグのリストがあるアプリがあります。このリストは時間の経過とともに大きくなり、水平方向にスクロールする必要があります。これは以前は問題ありませんでしたが、Lion ではスクロールバーが自動的に非表示になります。水平スクロールのないマウスを使用している場合、Lion ではこれらをスクロールする方法は基本的にありません。問題を解決するためのベスト プラクティスは何ですか? スクロールビューを削除して、「その他」リストなどに変更する必要がありますか?

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

objective-c - custumNSScrollViewを使用してテーブルをエミュレートする

テーブルに似たカスタムスクロールビューを作成するにはどうすればよいですか?documentViewで水平方向にスクロールするヘッダーが必要ですが、常に上部にあります(スクロールバーはその下から始まります)。

私はこれまでに持っているものの画像を添付しました:

現在、documentView内にヘッダーをレンダリングするだけで、表示されている四角形の上部にヘッダーを描画できると確信していますが、垂直スクロールバーを下に移動するにはどうすればよいですか?

contentViewのフレームサイズを変更してみましたが、うまくいきませんでした。誰かがこれを実装する適切な方法を知っているなら、私はそれをいただければ幸いです。ありがとう!

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

osx-snow-leopard - Snow Leopard と Lion での NSScrollView の動作 (NSScroller の透過性)

Snow Leopard と Lion の両方で適切に表示されるように、InterfaceBuilder (XCode 4) で NSScrollView を設定する際に問題が発生しました。

プログラムを使用するときにアクセスする必要があるコントロールを含む 4 つの NSView があります。ビューを NSScrollView のビュー内に配置しました。ウィンドウが小さくなり、すべてを表示できない場合、垂直スクロール バーが表示されます。[customView isFlipped] == YES(ビューは、唯一のカスタマイズとして返されるカスタム ビューです。)

NSScrollView は、プログラム ウィンドウの高さに合わせて垂直方向に自動サイズ設定されるように設定されています。スクロール ビュー内のカスタム ビューは、NSScrollView の幅で水平方向に自動サイズ設定されるように設定されています。NSScrollView は垂直スクロール バーを表示し、コンテンツ全体が表示されると自動的に非表示にします。

この構成では、すべてが Snow Leopard でうまく機能します。しかし、Lion を使用すると、垂直スクロール バーがカスタム ビューの上に表示されず、右側の不透明な灰色のバー内に表示されます。これは、ウィンドウが十分に大きいため、または使用されていないときに Lion がスクロール バーを非表示にするため、スクロール バーが非表示になっている場合でも消えません。カスタムビューの幅全体にまたがる要素がいくつかあり、ウィンドウの境界から15ポイント離れているため、これは本当に専門的ではないように見えます。カスタム ビューの幅を NSScrollView の幅 (1 つの NSScroller の幅に対して +15pt) に設定すると、Lion でこれを正しく動作させることができますが、垂直スクロール バーが表示されます。両方のシステムで正しく見えるようにする方法はありますか?

Snow Leopard 10.6 SDK と Leopard 10.5 を最小 OS としてコンパイルしています。