2015-12-02 6 views
0

Я вижу нечетный дисплей NSOpenPanel в проекте. Столбец заголовка (сортировка) плавает, а не остается прикрепленным к верхней части представления. Вот код, я использую, чтобы представить панель:NSOpenPanel Odd Floating Header

NSOpenPanel *panel = [NSOpenPanel openPanel]; 
NSArray *fileTypes = @[(NSString *)kUTTypeJPEG, (NSString *)kUTTypePNG, (NSString *)kUTTypeBMP, (NSString *)kUTTypeTIFF]; 
[panel setCanChooseDirectories:NO]; 
[panel setAllowsMultipleSelection:NO]; 
[panel setAllowedFileTypes:fileTypes]; 
NSInteger i = [panel runModal]; 

Если я использую тот же код в новом проекте, он представляет правильно. Поскольку я представляю системную панель, я не вижу, как мое приложение может нести ответственность за этот нечетный дисплей, но я открыт. Кто-нибудь имеет какие-либо предложения относительно того, что я мог бы найти в своем приложении, которое может вызвать такое поведение?

Example of floating header

приложение в вопросе ориентации 10.10.

+0

Почему бы вам просто не запустить поиск NSOpenPanel и получить рабочий код? NSOpenPanel более 10 лет, и нет ничего нового. Если у вас что-то неожиданное, вы делаете что-то неожиданное. –

ответ

0

Я уверен, что ответ, который вы ищете, заключается в том, что в конечном итоге вы хотите использовать обработчик завершения на основе блоков, вызывающий api вместо runModal. яблоко преднамеренно или не оставило прежнее runModal api сломанным различными способами, когда дело доходит до NSOpen/SavePanel и изолированных приложений.

+0

Проблема закончилась тем, что она связана с песочницей, но хороший вызов с использованием блочной презентации, а не runModal. –