Как добавить NSButton в IKImageBrowserView

Я пытаюсь настроить IKImageBrowserView для отображения изображений с помощью кнопки на каждом элементе (см. Прилагаемое изображение). Когда пользователь нажимает на кнопку (большой палец вверх), я отмечаю ее как избранную. ImageBrowser с фотографиями

В настоящее время я только показал изображение (большой палец вверх) вместо кнопки на каждом элементе. Однако, это не кликабельно, потому что я добавил его в CALayer (я читал, что CALayer не является респондентом события), со следующим кодом:

- (CALayer *)layerForType:(NSString*) type
{
    NSRect frame = [self frame];

    // foreground layer
    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);

        NSRect imageContainerFrame = [self imageContainerFrame];
        NSRect relativeImageContainerFrame =
        NSMakeRect(imageContainerFrame.origin.x - frame.origin.x,
               imageContainerFrame.origin.y - frame.origin.y,
               imageContainerFrame.size.width,
               imageContainerFrame.size.height);

        CALayer *likeDisableLayer = [CALayer layer];
        setBundleImageOnLayer(likeDisableLayer, CFSTR("LikeIcon_disable.png"));
        likeDisableLayer.frame = CGRectMake((frame.size.width/2)-5, frame.size.height - 25, 24, 30);
        [layer addSublayer:likeDisableLayer];

        return layer;
    }
    return nil;
}

Есть несколько потоков с одним и тем же вопросом ( это не приводит к добавлению кнопки к слою, это не дает правильного ответа, это касается iOS и использует UITapGestureRecognizer в качестве обходного пути), но ни один из них не является полным или точным.

Я был бы признателен за любую помощь, оказанную для достижения моей цели, или за какой-то другой совет, как туда добраться.

Спасибо

0 ответов

Другие вопросы по тегам