Как было отмечено в комментариях, ответ мистера Касвелла фактически противоположен тому, что спрашивал ОП.В этом примере кода показано, как удалить прямоугольник из круга (или любой путь Безье из любого другого пути Безье).Хитрость заключается в том, чтобы «обратить» путь, который вы хотите удалить, и затем добавить его к исходному пути:
NSBezierPath *circlePath = [NSBezierPath bezierPathWithOvalInRect:NSMakeRect(0, 0, 100, 100)];
NSBezierPath *rectPath = [NSBezierPath bezierPathWithRect:NSMakeRect(25, 25, 50, 50)];
rectPath = [rectPath bezierPathByReversingPath];
[circlePath appendBezierPath:rectPath];
Примечание: все становится немного сложнее, если пути Безье пересекаются друг с другом.Затем вы должны установить правильное «правило намотки».