首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向IKImageBrowserCell添加NSControl

向IKImageBrowserCell添加NSControl
EN

Stack Overflow用户
提问于 2011-01-29 23:01:43
回答 1查看 1.2K关注 0票数 3

我已经构建了一个自定义的IKImageBrowserCell,它在IKImageBrowser中显示我的图像没有任何问题。

我想尝试覆盖内置的IKImageBrowser删除镜像功能。目前“开箱即用”,你可以选择一个图像,或多个图像,然后按退格键删除。

我想添加一个NSButton或类似的来在每个图像上启用相同的功能。

我添加了以下代码,以便在IKImageBrowserCell被选中时在其上显示一个删除图标:

代码语言:javascript
复制
- (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: method?我卡住了!

EN

回答 1

Stack Overflow用户

发布于 2015-03-13 03:04:11

myIKImageBrowserView.selectionIndexes()返回当前所选单元格的NSIndexSet -您可以在删除图层之前使用该use调用removeItemsFromIndex方法

https://developer.apple.com/library/mac/documentation/GraphicsImaging/Reference/IKImageBrowserView/index.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4837543

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档