2009-07-01 2 views

答えて

1

最初にイメージビューのイメージをデフォルトイメージに設定してから、後でそれを変更しますか?

+0

たとえば、画像ビューに「ここに画像を落とす」というグラフィックを表示したい場合は、すばらしい解決策ではありません。初期値がnilであるか、ユーザーが現在のイメージを削除したときにイメージビューのイメージを監視してカスタムグラフィックスをスワップすることでそれを行うことができますが、drawRectに追加するだけの作業は少ないようです。 –

3

はい。それは一つの方法でした。私は次のコードを使用しました。

// Drawing 

    - (void)drawRect:(NSRect)rect 
{ 
    if([self image]) 
    {  
     [[NSColor grayColor] set]; 
     NSRectFill(rect); 

     //ImageView Bounds and Size 
     NSRect vBounds = [self bounds]; 
     NSSize vSize = vBounds.size; 

     //Get the size and origin of default image set to imageView 
     NSRect imageRect; 
     imageRect.size = [[self image] size]; 
     imageRect.origin = NSZeroPoint; 

     //Create a preview image 
     NSSize previewSize = NSMakeSize([self image].width/4.0, [self image].height/4.0); 
     NSImage *previewImage = [[NSImage alloc] initWithSize:previewSize]; 


     //Get the point where the preview image needs to be draw 
     NSRect newRect; 
     newRect.origin.x = vSize.width/2-previewSize.width/2; 
     newRect.origin.y = vSize.height/2-previewSize.height/2; 
     newRect.size = [previewImage size]; 

     //Draw preview image in imageView 
     [[self image] drawInRect:newRect fromRect:imageRect operation:NSCompositeSourceOver fraction:1.0]; 

     [previewImage release]; 
    } 
} 
関連する問題