Это то, что я делаю, на Snow Leopard работает отлично:
В 10.6, NSEvent
имеет метод «увеличения», который вернет нужное количество уже. Все, что вам нужно сделать, это добавить это к старому значению, например [imageBrowser zoomValue]+[event magnification]
.
- (void)magnifyWithEvent:(NSEvent *)event
{
if ([event magnification] > 0)
{
if ([self zoomValue] < 1)
{
[self setZoomValue:[self zoomValue] + [event magnification]];
}
}
else if ([event magnification] < 0)
{
if ([self zoomValue] + [event magnification] > 0.45)
{
[self setZoomValue:[self zoomValue] + [event magnification]];
}
else
{
[self setZoomValue:0.45];
}
}
}
self - это подкласс IKImageBrowserView
. У меня есть порог, чтобы zoomValue
не мог быть меньше 0,45, но мне это нравится.
С наилучшими пожеланиями,
Матиас, Программное обеспечение Eternal Storms