2012-02-20 7 views
0

これは私のObjective-cイメージの世界への私の最初の挑戦であり、すぐに難しかったです。私が持っているのは、TimeAdderという名前のNSWindowControllerによって制御されるTimeAdder.xibのカスタムNSWindowです。すべてがうまくいきました。そして、私は小さな青い矩形を追加しようとしています。ウィンドウ上に小さな青い四角を描くことの問題

ウィンドウの目的の場所に16×16のサイズのNSImageViewをセットアップしました。次に、windowDidLoadメソッドに次のコードを追加しました。

NSSize size; 
size.width = 16; 
size.height = 16; 
image1 = [[NSImage alloc] initWithSize:size]; 
NSRect imageBounds = NSMakeRect (0, 0, size.width, size.height); 
NSColor* fileSet1Color = [NSColor blueColor]; 

[image1 lockFocus]; 
[fileSet1Color set]; 
NSRectFill (imageBounds); 
[image1 unlockFocus]; 
[pickImage1 setImage:image1]; 

pickImage1は、NSImageViewの名前であり、TimeAdder内のivarです。 image1はTimeAdder内のivarであり、NSImageです。 size、firstSet1Color、imageBoundsはすべてローカル変数であり、メソッドが終了すると消えます。それが重要かどうかは分かりませんでした。

コードは実行され、いかなる種類の例外も発生させませんが、何もしません。誰にも何が起こっているのかについての考えがありますか?

答えて

2
  1. あなたはpickImage1が実際にNSImageViewですか?あなたがペン先に接続しなかった場合、またはそれを間違って行った場合、それはゼロかもしれません。 Objective-Cはその場合例外を生成しませんが、何もしません。

  2. 確率が低い:NSImageには、ファイルにダンプすることで、あなたが思うものが実際に含まれていることを確認してください。最も簡単な方法は[[image1 TIFFRepresentation] writeToFile:@"/tmp/image.tiff" atomically:YES]で、端末ウィンドウではopen /tmp/image.tiffです。

は(あなたがそれを助けることができれば、実際のコードで -TIFFRepresentationを使用しないでください、それは、このようなデバッグや健全性チェックのための罰金です。)私はTimeAdderにXIBからそれをドラッグして

+0

はする必要があります。 hを確認します。そのすべてがチェックアウトすれば、私はティフダンプをして見ます。情報をありがとう。 –

+0

pickImage1は間違いなくNSImageViewであり、xibに表示されるはずの場所に正しくバインドされているようです。次のステップはtiffダンプへの道です。私は明日いつかそこに着くだろうと思う。 –

+0

pickImage1が正しく配線されていませんでした。私はそれを修正する前に何が間違っていたのか分かりませんが、私はそれをやり直して問題はなくなりました。 image1はivarである必要はありません。 –

関連する問題