Я новичок в мире Mac и вижу некоторое поведение, которое озадачивает меня.Я работаю над основной полноэкранной утилитой, которая будет захватывать основной экран Mac и отображать текст.Проблема, с которой я сталкиваюсь, заключается в том, что, если я фиксирую отображение несколько раз, после первого раза, когда я пишу текст, contextRef начинает ухудшаться в начале строки каждый раз, когда он пишется.В первый раз может оказаться, что заливка не прорисовывается в первой букве, после этого целые разделы текста в начале строки исчезают.Код, который я использую, выглядит следующим образом:
CGDisplayCapture(kCGDirectMainDisplay);
CGDirectDisplayID display = kCGDirectMainDisplay;
CGContextRef ctx = CGDisplayGetDrawingContext (display);
CGContextSelectFont (ctx, "Times-Roman", 48, kCGEncodingMacRoman);
CGContextSetTextDrawingMode (ctx, kCGTextFillStroke);
CGContextSetRGBFillColor (ctx, 1, 1, 1, 0.75);
CGContextSetRGBStrokeColor (ctx, 1, 1, 1, 0.75);
CGContextShowTextAtPoint (ctx, 400, 400, text, strlen(text));
Я обнаружил, что если я поставлю '[NSThread sleepForTimeInterval: 0.25]' перед CGContextShowTextAtPoint, текст будет всегда отображаться правильно, но это то, что я хотел бырассмотрим взлом.
Мой вопрос к тем, кто умнее меня: что вызывает проблему, и есть ли что-то другое, что я должен сделать, чтобы попытаться решить ее?
TIA,
JT