Это не имеет прямого отношения к вашему вопросу, но заголовок вашего вопроса опровергает ложное предположение, на которое я хочу ответить.
Изменение заливки на уже нарисованный NSBezierPath
Это невозможно.
В Какао «заливка» - это глагол, а не свойство объекта, как в Illustrator или Lineform. Вы не устанавливаете заполнение пути и не меняете его позже; Вы заполняете путь, и вы меняете это пикселями в каком-то невидимом хранилище. В реальной аналогии можно было бы установить сплайны на плоском стекле, затем заполнить область, ограниченную сплайнами, краской и дать ей высохнуть. «Заполнение» не является свойством сплайнов; это акт выливания краски в форму, которую они определяют.
Как и в случае аналогии, вы не можете удалить или изменить заполнение, которое вы сделали ранее - краска прилипла к стеклу; от этого ничего не получится *. Единственный способ добиться этого эффекта - сделать заливку другим цветом. Вы можете переместить сплайны (создать новый путь) или добавить сплайны (добавить пересекающийся подпуть к существующему пути) перед заливкой, если вы хотите изменить только часть существующего чертежа.
Все это относится ко всем операциям рисования, включая обводку контуров и рисование растровых изображений. Рисование текста тоже, поскольку это просто еще один случай заполнения и / или обводки контура.
* Хорошо, вы, вероятно, могли бы удалить настоящую краску с реального стекла, химически или соскобом. Никакая аналогия не идеальна. ☺