2014-02-18 3 views
2

Я новичок в разработке приложений Mac, используя Cocoa. Я смущен тем, что должно быть размером окна/вида. Как и в приложении iOS, у нас есть соответствующие размеры для небольшого iPod, а также для последних iPod. Но как установить размер в приложении Cocoa.Размер окна для Mac-приложения

Также я хочу установить цель развертывания в OS X 10.6, которая не поддерживает AutoLayout.

Так что было бы хорошим способом изменить размер окон, которые должны соответствовать каждому рабочему столу?

+0

Размер окна и цели развертывания - это два разных предмета. –

ответ

1

Не думайте слишком много, как программирование для устройства iOS. В OS X пользователь может отображать несколько окон на экране рядом друг с другом. Он может захотеть сделать это в зависимости от задачи, которую имеет ваше приложение.

Вам нужно будет спроектировать свое окно, чтобы все объекты входили внутрь. Исходя из этого, вы можете установить минимальный размер, а также максимальный размер. Рассмотрим наименьшее разрешение экрана около 1200 x 700, и, таким образом, ваш минимальный размер не должен превышать этого.

Перед автоавалютом существовали «пружины & распорки», чтобы определить, как изменить размер или положение объектов с помощью рамки окна изменения размера.

Я рекомендую вам начать выкладывать свое приложение на aper или с помощью графического инструмента, а затем посмотреть, сколько места необходимо. Если требуется больше места, чем минимальное разрешение, вам придется начать использовать прокрутки, разделять виды или аналогичные, чтобы интерфейс работал в разных размерах окна.

Много полезной информации можно извлечь из OS X HIG.

5

Есть несколько вещей, которые необходимо учитывать при определении размера окна для отображения под OS X.

Во-первых, есть размер области отображения. Вы можете использовать

NSRect frame = [[NSScreen mainScreen] frame]; 

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

NSRect frame = [[NSScreen mainScreen] visibleFrame]; 

, который уважает панель меню и док-станцию.

Как указывали другие, этот прямоугольник редко является идеальным для окна. Поймите также, что этот прямоугольник является только отправной точкой, потому что ваш пользователь может иметь несколько дисплеев, и они вносят вклад в общую область, в которой может отображаться окно. Но при отображении нового окна вы всегда начинаете в этом прямоугольнике. Посмотрите на документацию NSScreen, чтобы определить это; описанные выше методы обеспечат вам трамплин.

Я не знаю, как вы планируете создавать и использовать свое окно, но для всех, кроме самых простых приложений, вы, вероятно, будете использовать подкласс NSWindowController. Если это так, это будет делегат вашего окна. И таким образом есть важный метод окна делегат, что вам нужно реализовать в нем, и это:

- (NSRect)windowWillUseStandardFrame:(NSWindow *)window defaultFrame:(NSRect)newFrame 

Здесь вы определяете «стандарт» расположение и размер кадра вашего окна. Он вызывается окном, когда окно масштабируется «вне» на так называемое «стандартное состояние» (по сравнению с размером, который пользователь делает, «пользовательское состояние»).Другими словами, это прямоугольник, который лучше всего подходит для содержимого вашего окна, но имеет в виду прямоугольник, описывающий «безопасную» область, в которой вы можете отображать ее. К сожалению, я не могу точно сказать, как его кодировать, потому что он полностью зависит от того, что вы показываете внутри своего окна.

Таким образом, вы можете видеть, что определение «правильное» - это нечто совершенно отличное от определения в iOS. С наилучшими пожеланиями в ваших начинаниях.

Смежные вопросы