Как мне определить окно сообщения gamekit? - PullRequest
1 голос
/ 11 сентября 2010

Когда приложение iPhone с GameKit запускается и устройство уже подключено к GameCenter, в верхней части экрана появляется небольшое сообщение со словами «Welcome back% username!».

Я обнаружил следующее: это сообщение появляется в своем собственном UIWindow, которое в конечном итоге убирает сообщение и освобождает себя.Когда сообщение отображается на экране, вы можете выйти из системы:

all windows: ( "<UIWindow: 0x31fc70; frame = (0 0; 320 480); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x31fe60>>", "<UIWindow: 0x3874c0; frame = (0 0; 320 480); opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0x387590>>" )

Мне нужно различать два окна в общем случае - мне нужно что-то вроде -(UIWindow *)topNormalWindow функция, которая возвращает самое верхнее окно, которое не является ни A) предупреждением, ни B) сообщением игрового центра.У меня уже есть - (UIWindow *) topNonAlertWindow, которое определяет верхнее окно, которое не является предупреждением, но сообщение gamekit не является, но и не является (для моих целей) нормальным окном.

Также, что означает autoresize = RM+BM;? 1013 *

Ответы [ 3 ]

1 голос
/ 28 октября 2010

Я решил эту проблему, просто проверив, имеет ли окно GKGameEventView в качестве подпредставления.

0 голосов
/ 13 марта 2013

По поводу вашего последнего вопроса:

Что означает авторазмер = RM + BM; значит?

RM + BM - сокращение для масок UIViewAutoresizing, UIViewAutoresizingFlexibleRightMargin и UIViewAutoresizingFlexibleBottomMargin соответственно. Если вы выберете элемент управления пользовательского интерфейса в Интерфейсном Разработчике и перейдете к Инспектору размера , на графике «Авторазмер» появится красный «I-Beams», где элемент управления привязан к своему ограничивающему виду. Если Autoresizing = RM+BM, это означает, что вы должны увидеть верхнюю и левую опорные балки (двутавровые балки) красным, а правая и нижняя - тусклыми. По сути, это означает, что правое и нижнее поля являются гибкими, и менеджер макета может свободно корректировать их при визуализации представления.

0 голосов
/ 02 октября 2010

Я использую Game Center и добавляю систему уведомлений о достижениях . Я получаю верхнее окно, как это:

[[UIApplication sharedApplication] keyWindow]

Кажется, не конфликтует с оповещениями или окном аутентификации игрового центра. Фактически, мои уведомления добавляются под этим окном, поэтому я думаю, что вы находитесь на другом слое выше всего, к чему вы можете получить доступ.

...