2011-01-29 5 views
3

IKImageBrowserで画像を表示しているカスタムIKImageBrowserCellを作成しました。NSControlをIKImageBrowserCellに追加する

組み込みのIKImageBrowser画像削除機能を無効にしようとしたいと思います。現在のところ、あなたは画像を選択したり、複数の画像を選択したり、「BACKSPACE」を押して削除することができます。

NSButtonなどを追加して、各画像で同じ機能を有効にしたいと考えています。

私はそれを選択したときにIKImageBrowserCell上の削除アイコンを表示するには、次のコードを追加しました:

- (CALayer *) layerForType:(NSString*) type { 

CGColorRef color; 

//retrieve some usefull rects 
NSRect frame = [self frame]; 
NSRect imageFrame = [self imageFrame]; 
NSRect relativeImageFrame = NSMakeRect(imageFrame.origin.x - frame.origin.x, imageFrame.origin.y - frame.origin.y, imageFrame.size.width, imageFrame.size.height); 

if(type == IKImageBrowserCellForegroundLayer){ 
    //no foreground layer on place holders 
    if([self cellState] != IKImageStateReady) 
     return nil; 

    //create a foreground layer that will contain several childs layer 
    CALayer *layer = [CALayer layer]; 
    layer.frame = CGRectMake(0, 0, frame.size.width, frame.size.height); 


    if([self isSelected]){ 

     //add a delete icon 
     CALayer *deleteLayer = [CALayer layer]; 

     [deleteLayer setContents:(id)deleteImage()]; 
     deleteLayer.frame = CGRectMake(relativeImageFrame.size.width-14, (relativeImageFrame.origin.y+relativeImageFrame.size.height)-14, 28, 28); 
     [layer addSublayer:deleteLayer]; 
    } 
    } 
} 

これは素晴らしい作品が、明らかに単なる静的なイメージ。この削除アイコンをクリックしてイベントを取得してから、選択したセルインデックスをIKImageBrowserに返してremoveItemsFromIndex:メソッドを呼び出す方法はありますか?頑張って!

+0

も参照します。http:// stackoverflow.com/questions/8839230/adding-nsbutton-to-ikimagebrowsercell – wmorrison365

答えて

関連する問題