問題タブ [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.

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

cocoa - addSubviewと自動サイズ設定

ウィンドウにビューを追加して、ウィンドウフレーム内に収まるようにビューのサイズを変更するにはどうすればよいですか?

問題

2つのビューを含むシートウィンドウを作成していますが、一度に1つしか表示されないため、ビューのサイズがウィンドウと同じであることが重要です。私の問題は、view0が正しく適合し、view1が適合しないか、またはその逆であるということです。窓と同じ大きさにする方法がわかりません。

考えられる解決策

両方のビューがInterfaceBuilder内で正確に同じサイズであることを確認できれば、機能します。しかし、私はこれをプログラムで行う方法を探しています。


view0のスクリーンショット

以下に、ビューが何らかの形でクリップされている上部と右側の自動サイズ変更の問題を示します。

view0
(ソース:flickr.com


view1のスクリーンショット

このビューは正しくサイズ変更されます。

view1
(ソース:flickr.com


これが私のコードです

ビューをウィンドウに追加する前に、ビューのサイズを変更できますか。または、ウィンドウフレームを変更しながら、ビューを1つずつ追加するのと同じように行う方がよいでしょう。どうしますか?

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

objective-c - NSViewでグリッドを作成する

私は現在NSView、ユーザーがグリッドの間隔とグリッドの色を変更できるという考えで、グリッドパターン(基本的には水平線と垂直線のガイド)を描画するを持っています。

グリッドの目的は、オブジェクトを並べるときにユーザーのガイドラインとして機能することです。1つの例外を除いて、すべてが正常に機能します。NSWindowグリッド間隔が特に小さい場合(たとえば10ピクセル)、サイズ変更ハンドルをドラッグしてサイズを変更します。ドラッグのサイズ変更は本質的に無気力になります。

グリッドの私のdrawRectコードは次のとおりです。

これは、グリッドを描画する方法と完全に関係していると思います。また、グリッドをどのように処理するかについての提案を受け入れています。

非効率性がどこにあるのかがわかります。ドラッグサイズ変更は、サイズ変更時にこのビューでNSWindow常に呼び出してdrawRectいます。グリッドが近いほど、親ウィンドウのピクセルあたりのドラッグ数が多くなります。

ウィンドウのサイズ変更時にビューを非表示にすることを考えていましたが、動的ではありません。遅延やちらつきが感じられないように、ユーザーエクスペリエンスを非常にスムーズにしたいと考えています。

グリッドを描画するためのより良いまたはより効率的な方法について誰かが何かアイデアを持っていますか?

いつものように、すべての助けは非常にありがたいです。

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

cocoa - CALayers の印刷

多くの CALayers を含む NSView があります。ユーザーがドキュメントを編集しているとき、これらの CALayer はすべての編集をアニメーション化します。アプリに印刷を実装しようとしていますが、これらの CALayers を正しく印刷する際に問題が発生しています。

一部の CALayers 境界は NSView 全体を占有し、その位置が変更されないため、配置する必要はありません。ただし、約 20 個の小さな CALayer を含む CALayer も 1 つあります。これらの CALayer は、通常の編集中に位置の変化をアニメートします。ただし、NSView を印刷しようとすると、これらの小さな CALayer が正しくレイアウトされません。これらのレイヤーが正しく配置されていることを確認し、NSView を正しく描画/印刷できるようにするために何か特別なことをしなければならないかどうか疑問に思っています。

Core Animation でサポートされた NSView を印刷した経験のある人はいますか? 任意の提案をいただければ幸いです。

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

macos - CGPath からの NSView の作成

私は CGPath を持っていて、一度 NSView に描画したいと考えています。比較的単純に思えますが、AppKit (iPhone 以外) で方法が見つかりませんでした。

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

cocoa - NSWindowをNSViewのサブビューとして表示

別のウィンドウの一部として表示したい NSWindow があります。NSWindow でなければなりません。私はそれをNSViewなどに変更したくありません...外部のnibファイルなどにアクセスする必要があるため、変更したくありません。

可能であれば、これをどのように達成する必要がありますか? 私は NSWindow のビューを取得し、それをメイン ウィンドウの別のビューのサブビューとして貼り付けるという方針に沿って考えていましたが、これは可能ではないと思います。それは...ですか?

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

cocoa - NSView での NSString の奇妙な動作

Skat-Game を作成しようとすると、次の問題が発生しました。

isBidding はブール値を示します。プログラムは特定の状態にあります。[desk selected] は現在選択されているプレイヤーを返すメソッド呼び出しです。chatStrings は辞書で構成され、プレイヤー、誰が入力したか、何を入力したかの文字列を保存します。

これは、文字列の内容を決定する部分です。文字列は [event characters] メソッドによって提供されます。

問題がある場合はこれです:

3 文字以上入力すると、ビューに NSRectSet{{{471, 574},{500, 192}}} が表示され、印刷しようとすると説明が返されません。

その後、EXC_BAD_ACCESS メッセージが表示されますが、解放していませんが (私が確認できる限り)、alloc と init で文字列も作成したため、自動解放プールに参加できません。デバッガーで変化するときのプロセスも監視しようとしましたが、責任あるコードは見つかりませんでした。

ご覧のとおり、私はまだ Cocoa (およびプログラミング全般) の初心者なので、誰かがこれを手伝ってくれたら本当にうれしいです。

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

objective-c - Cocoa WebView のレイヤリング - 上に描画しますか?

コア アニメーション レイヤーの webview

私が見つけることができる唯一の他のスレッドは、必ずしも私のニーズに合わない上記のものです。Web ビューの上にビューを単純に描画する信頼できる方法はありますか? WebView の上に通常の NSView を重ねようとしましたが、最初は正しく描画されますが、WebView 内の動き (ページのスクロールなど) は、ビューを無効にして視覚的なアーティファクトを生成するように見えます。

私はもう試した:

運が悪い、同じ問題-何かが欠けていない限り、zオーダーは機能しないようです。

これは単なる Web ビューの制限ですか?

また、上記のビューをウィンドウとして実装しようとしましたが、これははるかにうまく機能しました (ウィンドウの位置をプログラムで制御しただけです)。ただし、望ましい動作は、ユーザーがこのウィンドウにテキストを入力することですが、「フォーカス」を盗まないことです。つまり、ユーザーがテキスト フィールドをクリックすると、メイン ウィンドウが非アクティブになります (x - + が灰色になります)。新しいウィンドウで。それを回避する方法はありますか?

NSWindow をサブクラス化し、canBecomeKey (YES を返す) と canBecomeMain (NO を返す) をオーバーライドしようとしましたが、ウィンドウはまだフォーカスを盗みます。

編集: 私は泣きます :-( Webkit 上の描画を回避する方法がわかりません。一方、アプリのメイン ウィンドウを強制的にアクティブな状態に保つ方法を見つけました。キー状態のポップアップ ウィンドウ. ただし、ポップアップ ダイアログでテキスト入力を使用すると、意図しない結果が生じます (キー ウィンドウ状態に強制する必要があります). バックスペースが機能しません :: 首を振る ::, およびマウス イベント以下のWebkitビューに配布されていません(htmlに埋め込まれたコンポーネントへのマウスオーバーの場合)。

ジョシュ

0 投票する
7 に答える
25788 参照

cocoa - NSView をすべての NSView の前面に移動するにはどうすればよいですか

2 つのサブビューを持つスーパー ビューがあります。これらのサブビューは重複しています。

メニューからビューを選択するたびに、対応するビューが正面図になり、アクションを処理する必要があります。つまり、最前面のサブビューにする必要があります。

acceptsFirstResponderすべての仕事をうまく辞任します。ただし、マウスダウンイベントは、設定された最上位のサブビューに送信されます。

よろしく、ダーナ

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

objective-c - NSMenuItem のビュー (NSView サブクラスのインスタンス) がホバー時に強調表示されない

カスタムNSViewサブクラスを使用して一部のコンテンツを描画する必要がありますが、ユーザーがホバーしたときにハイライト表示されずNSMenu、ユーザーがクリックしても閉じません。何か案は?

編集

を使用する-drawRect:[[self enclosingMenuItem] isHighlighted]、ビューを強調表示して描画する必要があるかどうかを判断でき、そうする機会が与えられます。私が理解しなければならないのは、それを行う方法だけです。

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

cocoa - Cocoa: 編集可能なテキスト領域を持つカスタム NSView を実装する方法は?

編集可能なテキスト領域を持つカスタム NSView を作成するために必要な最小限の実装は何ですか? これには NSTextFieldCell を使用できると思います。ビューでセルを描画することに成功しましたが (これは簡単です)、編集可能にするには、ビューとセルの間でより複雑な調整が必要なようです。サンプルコードはどこかにありますか?

アップデート。私の長期的な目標は、同じビュー上により多くの編集可能なテキスト領域を持つことであることを明確にするべきでした。知る限り、セルは本格的なビューよりも軽量であるため、その場合はセルを使用することをお勧めします。私の更新された質問は次のとおりです。適切な NSCell を使用して、編集可能なテキスト領域を持つカスタム NSView を作成するために必要な最小実装は何ですか?