問題タブ [nsimageview]

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

objective-c - NSImageView の画像とボタンの位置が間違っている

ボタンと画像を同じ位置 (0, 0) に割り当てていますが、異なる場所に描画されます。なぜこれが起こるのですか?

これが私のコードです:

ビルド後の結果は次のとおりです。

スクリーンショット

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

objective-c - コードでのInterfaceBuilderのシステムメディアファイルの使用

IBのライブラリの[メディア]タブにあるいくつかの画像とサウンドファイルについて質問があります。コードでどのように使用できますか?NSImageVewの画像をに変更したいのですNSRevealFreestandingTemplateが、どうすればアクセスできますか?非表示の画像ビューを作成してそこからプルするよりも良い方法があるはずです。何か案は?

ありがとうございました!

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

objective-c - NSImageViewを使用して複数の画像をすばやく連続して表示する

1つのウィンドウにNSImageViewがあるアプリケーションがあります。ユーザーは任意のファイル/フォルダー(画像だけでなく)を画像ビューにドラッグアンドドロップできるはずなので、NSImageViewクラスをサブクラス化して、これらのタイプのサポートを追加しました。

通常のビューではなくNSImageViewを選択した理由は、ユーザーがファイルをドロップする準備ができた状態でホバーしたときに、アニメーション(たとえば、下向きで上下を指す矢印)も表示したかったためです。私の質問はこれです:これを行うための最良の方法(最も効率的、最速、最小のCPU使用率など)は何でしょうか?

実際、私はすでにそれを行っていますが、この質問をしたのは、0.02秒未満の速度で画像を変更するように設定すると、画像が遅れ始めるという事実です。これが私がそれをした方法です:

NSImageViewサブクラスの場合:

  • ivarがあります:NSTimer * animTimer;
  • awakeFromNibをオーバーライドし、[super awakeFromNib]を呼び出し、NSImageを使用して画像を配列(約45枚の画像)にロードします
  • ユーザーがファイルを入力するときはいつでも、頻度= 0.025(より少なくて遅れる)でanimTimerを開始し、配列内の次の画像を設定するセレクター(drawNextImageと呼ばれる)
  • ユーザーがドラッグアンドドロップを終了または終了するたびに、[animTimerinvalidate]を呼び出して画像の更新を停止します

サブクラスに画像を設定する方法は次のとおりです。

それで、どうすればこれを十分に速く行うことができますか?周波数は約0.01秒にしたいのですが、遅れは0.025未満なので、今のところ設定しました。ああ、私の画像は正しいサイズ(+または-1ピクセルか何か)であり、.pngです(たとえば、透明度が必要です-jpegはそれを行いません)。

編集:

NSResponderの提案に従おうとしましたが、メソッドを次のように更新しました。

また、このメソッドと他のドラッグアンドドロップメソッドをNSImageViewサブクラスから既に持っていたNSViewサブクラスに移動しました。スーパークラスとこのメソッドを除いて、すべてがまったく同じです。また、いくつかの定数を変更しました。

これの初期のテストでは、NSGraphicsContextなどについて話している実行を停止しなかったいくつかのエラー/警告メッセージを受け取りました。これらは今は消えていますが、ご存知のとおりです。なぜ登場したのか、どういう意味なのか全くわかりません。それらが再び現れる場合、私はそれらについて心配します、今ではありません:)

編集2:

これは私が今していることです:

そして、ここでの落とし穴は、drawRectが呼び出されたときにdrawCurrentImageを呼び出すことです(実際には、私が思っていたよりも簡単に解決できました)。

さて、私はこれを合成画像で試したことがないと言わなければなりません。なぜなら、40以上の画像を希望どおりに(次々に)マージするための適切で迅速な方法が見つからなかったからです。しかし、興味のない人のために、NSImageViewサブクラスと同じことをするようにこれを変更しました(配列から40以上の画像を読み取り、それらを表示します)、スピードバンプは見つかりませんでした:NSViewはNSImageViewと同じように0.025未満で遅れています。また、コアアニメーション(画像は彼女に指示した場所ではなく奇妙な場所に描画されます)を使用するときにいくつかの問題があり、NSGraphicsContextについて話しているいくつかの警告がありますが、解決方法がまったくわかりません(私は完全ですObjective-Cのツールを使用した描画などに関してはnoob)。したがって、これらすべての画像をマージしてNSViewで試す方法が見つからない限り、当面はNSImageViewを使用しています。

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

xcode - NSImageView に画像を設定する

プログラムに問題があります。基本的に私が欲しいのは、2 つの nssecuretextfield とボタンがあります。両方が等しい場合は nsimageview に 1 つの画像を表示し、そうでない場合は他の画像を表示します。これは非常に簡単かもしれませんが、私は Mac プログラミングは初めてです。

.h ファイル:

.m ファイル:

誰でも私を助けてくれますか?私は試してみましたが、正しいか間違っているかに関係なく、1つの画像しか表示されません。

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

objective-c - NSImageView+背景色

私はこのような要件があります、

1つのNSIMageViewがあり、タイマーベースで頻繁に変更されます。サイズ変更時にアスペクト比を維持する必要があるため、画像が画像のフレーム全体を占めない場合があります。その場合、背景色を黒で表示する必要があります。

誰かが私にそれを達成する方法を教えてもらえますか?グーグルで1つのアプローチは、NSImageViewのサブクラスを使用することですが、画像が頻繁に変更されるため、パフォーマンスに何が影響するかわかりません。

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

objective-c - NSImageViewでmouseDownが検出されません

私はこの質問に対する答えを探していましたが、手順を実行している間も、mouseDownメソッドを呼び出せないようです。ユーザーが画像をクリックして押したままにすると、「マウスダウン!」と印刷されます。(最終的に私がやりたいのは、ユーザーが画像をクリックして押したままにしてサウンドを再生し、ユーザーが離すとサウンドが停止することです)。

これが私が持っているものです。私のヘッダー:

そして私のクラス:

これは正しく見えますか?もしそうなら、それを妨げる可能性のある他の問題はありますか?そうではなく、私は何をすべきですか?

ヒープに感謝します!

0 投票する
4 に答える
2011 参照

cocoa - サイズ変更されたNSImageViewが再描画されない

アプリケーションバンドルから画像をロードするNSImageViewがあります。

それはそのように設定されています:

画像は問題なく表示されます。

NSImageViewのサイズは、他のいくつかの要因に基づいて計算され、次のコードを使用して設定されます。

これは、最初に実行されたとき(アプリケーションの起動時)に完全に正常に機能します。

NSImageViewはサイズを引き継ぎ、含まれる画像は適切な境界で切り取られます。

残念ながら、アプリケーションの実行中にNSImageViewのサイズを変更しようとすると(上記と同じコードを使用して)、目に見えて更新されません。

NSLoggingはcoverImage.frame、フレーム自体が正しく更新されていることを示しています。ただし、フレームを縮小するときも拡大するときも、ビューは再描画されていないようです。さらに、アプリを終了して再起動すると、NSImageViewは正しい境界線を描画します。

何がそのような振る舞いを引き起こす可能性がありますか?

NSImageViewが単に再描画されない可能性はありますか?もしそうなら、どうすれば再描画を強制できますか?

この動作につながる可能性のある、見逃したNSImageViewの他の癖はありますか?

編集:

このバグは、ImageFrameStyleプロパティがに設定されている場合にのみ発生することがわかりましたNSImageFrameNone。フレームが他の値に設定されている場合、フレームは正常に再描画されます。残念ながら、画像はフレームなしで表示する必要があります。

これを説明できるフレームがある場合とない場合のNSImageViewのレンダリングに違いはありますか?

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

macos - NSImageView(cocoa / OSX)を使用したメモリ効率の高いサムネイルの作成

極端なテストケースでは、大きな画像から小さなNSImageView(32x32ピクセル)を作成しています。多くの場合、512x512、さらには4096x2048です。私の問題は、極端なテストケースでは、サムネイルを表示するとアプリケーションのメモリフットプリントが15 MB以上増加するように見えることです。これにより、NSImageが32x32ではなく4096x2048としてメモリに保存されていると思われ、そこにあるかどうか疑問に思いました。これを回避する方法です。NsImageViewを作成するために実行するプロセスは次のとおりです。

•最初に、initByReferencingFileを使用してNSImageを作成します:( 4096x2048 .pngファイルを指す)

•次に、initWithFrameを呼び出してNSImageViewを初期化します。

•次に、setImage:を呼び出して、NSImageをNSImageViewに割り当てます。

•最後に、NSImageViewをNSScaleProportionallyに設定しました

NSImageのサイズを32x32に強制することは明らかに何もしていませんが、これを処理するための適切な方法を見つけるのに苦労しました。

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

nstableview - NSTableViewの列のNSImageViewでのcocoaバインディングは自動的に更新されません

私のココアアプリにはNSTableView(10.7ライオンビューベースのテーブルビュー)が1つの列のみを含み、そのセルはカスタムNSTableCellViewであり、複数のビューがあり、そのうちの1つはNSImageViewです。

私のデータモデルには整数のステータス変数があります。ココアバインディングとNSValueTransformerを使用して、このNSImageViewに異なるNSImageを提供します。

問題は、画像が自動的に更新されないことです。ステータスが変更された後、画像はリストをリロードした後の変更のみを反映します。

助けてくれてありがとう:)

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

cocoa - コア アニメーションが動作しません。オブジェクトが消える

AnimationImageViewのサブクラスですNSImageView

animationImageViewオブジェクトは 5 秒間 (アニメーションの期間中) 消え、突然初期位置に表示されます。