Я пишу простой проект в задаче C с использованием XCode 4.1, нацеленный на MacOS (не мобильный), и столкнулся со следующей проблемой:
Одна из моих кнопок (NSButton, расположенная сверху на складе)NSView), будет периодически исчезать после нажатия.Он больше не рисуется, а фон отображается на его месте.Это не предполагаемое поведение, и происходит только время от времени (возможно, один из двадцати кликов).Особенно странным является то, что кнопка все еще активна - пользователь может щелкнуть пространство, где должна отображаться кнопка, и будет выполнено правильное действие, и кнопка будет снова нарисована.Изменение размера окна также приводит к повторному рисованию кнопки.
Я попытался исправить следующие ошибки, ни одно из которых не сработало:
- Добавить вызов SetNeedsDisplay в конец щелчкаprocessing.
- Добавить вызов SetNeedsDisplay в несвязанный цикл анимации.Это был неудачный выбор, он вызывал мерцание кнопки и в конечном итоге приводил к сбою при использовании кнопки.С некоторой синхронизацией это может быть взломано для обхода, но не решает проблему с корнем.
Есть какие-нибудь идеи о том, что происходит, и как я могу решить это?Спасибо!
edit: до сих пор не совсем понимаю, почему это происходит, но я нашел обходной путь: создание дублирующейся кнопки непосредственно под исчезающей кнопкой.Даже если он не нарисован, клики направляются на верхнюю кнопку.Kludge, конечно, но эффективно.