問題タブ [nsview]
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 - ココア:ドラッグ可能なゾーンを作成する
ココアにドラッグ可能なゾーンを作成し、2つの間で画像をドラッグアンドドロップできるようにするにはどうすればよいですか。
元:
ゾーン1:画像なし
ゾーン2:画像
ゾーン2の画像をゾーン1にドラッグし、画像の場所を保存(コアデータ)できるようにします。
http://developer.apple.com/Mac/library/documentation/Cocoa/Conceptual/DragandDrop/DragandDrop.htmlのようなことをする必要があります か?
cocoa - 「サブビューの追加」が機能しないのはなぜですか?
サブビューを追加しようとしましたが、機能しません。私のコードは次のとおりです。
NSLog はコンソールに次のように書き込みます。
addsubview が機能しないのはなぜですか? アプリを実行すると HomeView が表示されますが、サブビューとして使用できません。
objective-c - IB で設計された再利用可能なインターフェイスのビット
多くの異なるコンテキストで同じボタンのグループを含むアプリを作成しています。ボタンは、コンテキストごとに異なるオブジェクトにアクションを送信します。ボタンを含む単一の NSView を IB で設計し、リンクを維持しながらペン先の多くの場所にそのビューのコピーを配置できるようにして、変更が反映されるようにしたいと考えています。これらの各インスタンスを異なるオブジェクトに接続し、ボタンのアクションを親ビューが接続されているオブジェクトに送信したいと思います。
NSView のサブクラスを作成することを考えました。ロードされると、nib ファイルからロードされる別のビューに置き換えられ、接続されたオブジェクトがファイルの所有者として設定されますが、これが最もクリーンな方法であるとは確信していません。これがそのアイデアの私の実装です(これは機能します):
それは最もクリーンな方法ですか?これについて標準的な方法はありますか?
objective-c - NSView を NSGraphicsContext に描画しますか?
NSGraphicsContext に変換できる CGContext があります。コンテキスト用のclipRectを持つNSWindowがあります。
スクロールビューをコンテキストに入れ、次にスクロールビューに他のビューを入れて、画像を入れることができるようにしたい...しかし、スクロールビューをコンテキストにアタッチする方法がわかりません。
最終的には、ペン先からのビューになる可能性がありますが、それがどのように重要になるかはわかりません.
私はこのスレッドを見てきました(http://lists.apple.com/archives/quartz-dev/2006/Nov/msg00010.html)しかし、ビューをコンテキストにアタッチする方法のステップを省略しているようです。私が見逃している明らかな何かがない限り。
編集:
私がこのような状況にある理由は、私が Mozilla プラグインを書いているからです。ブラウザーは、CGContext (Quartz) と WindowRef (QuickDraw) を提供します。CGContext を NSGraphicsContext に変換し、windowRef を NSWindow に変換できます。別のデータ構造から、クリッピング長方形もあります...
必要に応じてスクロールバー、ボタン、その他のUI要素を使用して、そのコンテキストに画像を描画しようとしています...したがって、NSViewが必要です(欲しい)...
objective-c - 下部バー上のカスタムNSView塗りつぶしペイント
カスタムのウィンドウがあり、NSView
コントロールのある下部バーがあります。そのうちの1つはですNSColorWheel
。
簡単にするために、ウィンドウの高さは332ピクセルで、カスタムNSViewの高さは300ピクセル、下部のバーの高さは32ピクセルです。
下部のバーはawakeFromNib
、アプリが次のコードを使用してウィンドウをロードするときに、私の一部として作成されます。
カスタムNSView
クラスでは、長方形を色で塗りつぶします。NSView
私のクラスで以下を使用してアプリをロードすると、すべてが正常に機能します。
ただし、その後、下部のバーのカラーホイールが変更されたときにカスタムの色を変更するメソッドを呼び出すとNSView
、下部のバーが色で上書きされます。次のコードは、このメソッドを示しています(このコードはカスタムNSView
クラスにあります:
ウィンドウのサイズを変更すると問題はすぐに修正されますが、明らかなバグのためにユーザーがウィンドウのサイズを変更する必要はありません。
私が理解していないのは、呼び出したときにbounds
カスタムではなく親ウィンドウにマッピングされているように見えるのに、マウスを使用してウィンドウのサイズを変更すると(1ピクセルだけでも)境界が正しく調整される理由です。NSView
setNeedsDisplay
再描画の一番下のバーをどうにかして説明する必要がありますか?
ありとあらゆる助けが大いに感謝されます。
cocoa - Interface Builder でのビューのサイズ変更
何かを視覚化するのに苦労しています。
スクロールビュー内に他のコンテンツを含む 3 つのビューがあるとします。トップ、ボタン、画像。ボタンと画像は両方とも上部の内側にあります。上はスクロールビューを埋めませんが、ボタンと画像は上を埋めます。Top には実行時に決定される最大サイズがありますが、すべてが表示されるとは限りません。ボタン ビューは、イメージ ビューの上にあります。ボタン ビューの高さは固定である必要がありますが、幅は拡大されます。画像ビューはトップビューを埋め、両方向に伸びる必要があります。
問題は、スクロールビューのあるウィンドウのサイズが変更されたとき、およびスクロールビューがスクロールしたときに何が起こるかです。
ボタンビューがトップビューの表示部分の上部にあるように、トップビューの一部が表示されているときはいつでも欲しいです。外側のウィンドウをスクロールしたり、サイズを変更したりしても。
私は現在 IB にいます: TopVew はまったくサイズ変更されず、上部と左側がロックされています。ButtonView は高さではなく幅のサイズを変更し、左上にロックされます ImageView は両方のサイズを変更し、左上にロックされます。(おそらく右を追加しても問題ないでしょう)
何が起こっているのかというと、スクロールすると全体がスクロールするだけなので、ボタンビューが一番上になり、ウィンドウを小さくしすぎると、イメージビューがボタンビューを覆います。ウィンドウを大きくしたり、スクロールしたりしても、それは明らかになりません。
ここで見逃している簡単なものはありますか?
ありがとう。
cocoa - NSViewのメソッドaddSubviewは本質的に遅いですか?(Cocoa OSX)
大規模なプロジェクトをロードしているときに、ロードが非常に遅くなるGUIを高速化しようとしています(GUIはグループとサブグループの表現であり、多くのビューで構成されています)。このプロセス中に、特定のコードセグメントの実行にかかる時間を調べていましたが、addsubviewの呼び出しには、ほとんどの場合10〜20ミリ秒かかることがわかりました。私が見ていたサブビューは開示ボタンです。この方法は本質的に遅いのか、それとも他の要因がここで機能しているのでしょうか。サブビューを追加するのにかかる時間は、サブビューの複雑さに依存しますか、それとも要因ではありませんか?また、より高速なサブビューを追加するために使用できる他の方法はありますか?
objective-c - 非表示のNSViewを印刷する
最初に、カスタムNSViewを使用して簡単なプログラムを作成しました。絵(証明書)を描いて印刷しました!美しい!すべてがうまくいきました!
次に、カスタムNSViewを既存のアプリケーションに移動しました。私の望みは、ユーザーが印刷を押すと、この証明書が印刷されることでした。十分に単純です。コントローラコードにNSViewポインタを含めることができると考えました。次に、初期化時にポインタを設定します。次に、誰かが証明書を印刷したいときに、それが印刷されます。問題は、すべての描画コードが「drawRect」メソッドに含まれていることです。このビューはウィンドウに表示されないため、このメソッドは呼び出されません。
他の人が印刷のためだけに非表示のNSViewオブジェクトを使用していると聞きました。私は何をする必要がありますか?このビューを画面に表示したくありません。
ロジャー
objective-c - NSView のズームイン
ユーザーが円を描くことができる NSView があります。これらの円は NSBezierPaths の配列として格納され、drawRect: で配列をループして-stroke
各パスを呼び出します。NSView をズームインおよびズームアウトするボタンを追加するにはどうすればよいですか? ビューの境界を変更するだけですか?
ありがとう。