У меня есть nsview, и я использую рисовать прямоугольник, чтобы рисовать изображение для фона. Он также имеет 3 подпредставления nsbuttons. Проблема в том, что всякий раз, когда мышь нажимает на кнопку, другие кнопки исчезают. Но когда я удаляю метод рисования прямоугольника, этого не происходит. Итак, я предполагаю, что это связано с методом рисования прямоугольников для рисования изображений.
Как мне этого избежать? Итак, я предполагаю, что это связано с методом рисования прямоугольников для рисования изображений.
Как мне этого избежать? Итак, я предполагаю, что это связано с методом рисования прямоугольников для рисования изображений.
Как мне этого избежать? Спасибо.
РЕДАКТИРОВАТЬ: Хорошо, я понял, в чем проблема. В принципе, у меня есть NSMenuItem, и я помещаю в него представление с тремя кнопками. Но в NSMenu вверху есть отступ в 4 пикселя. Итак, в основном, чтобы удалить это заполнение, я использовал решение, представленное здесь: Пробел над пользовательским представлением NSMenuItem
В решении есть строка в методе drawRect:
[[NSBezierPath bezierPathWithRect:fullBounds] setClip];
В тот момент, когда я удаляю эту строку, и кнопка ведет себя правильно. Но тогда прокладка сверху никуда не делась.
Вот мой drawRect:
- (void) drawRect:(NSRect)dirtyRect {
[[NSGraphicsContext currentContext] saveGraphicsState];
NSRect fullBounds = [self bounds];
fullBounds.size.height += 4;
[[NSBezierPath bezierPathWithRect:fullBounds] setClip];
NSImage *background = [NSImage imageNamed:@"bg.png"];
[background drawInRect:fullBounds fromRect:NSZeroRect operation:NSCompositeCopy fraction:100.0];
[[NSGraphicsContext currentContext] restoreGraphicsState];
}