Я пытаюсь нарисовать текст через Quartz
на NSView
через CGContextShowTextAtPoint()
.Это работало хорошо, пока я не переопределил (BOOL)isFlipped
, чтобы вернуть YES
в моем подклассе NSView
, чтобы расположить начало координат в верхнем левом углу для рисования.Текст рисуется в ожидаемой области, но все буквы перевернуты.Я также попробовал (теоретически, по крайней мере) эквивалент перевернуть мой CGContext и выполнить перевод по высоте контекста.
ex
// drawRect:
CGContextScaleCTM(theContext, 1, -1);
CGContextTranslateCTM(theContext, 0, -dirtyRect.size.height);
Это дает тот же результат.
Многие предложения по аналогичным проблемам указывают на изменение текстовой матрицы.Я установил текстовую матрицу в единичную матрицу, выполнил дополнительную инверсию и сделал оба, соответственно.Все эти решения привели к еще более странному отображению текста (часто появляется только фрагмент.)
Другое предложение, которое я видел, состояло в том, чтобы просто избегать этой функции в пользу других средств рисования текста (например, NSString
методы рисования.) Однако это делается в основном на C ++ / C, и я хотел бы остаться на этих уровнях, если это возможно.
Любые предложения очень ценятся, и я был бы радотправьте больше кода, если это необходимо.
Спасибо, Сэм