• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Manually building GUI and Retina Macs
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Manually building GUI and Retina Macs


  • Subject: Re: Manually building GUI and Retina Macs
  • From: Andreas Falkenhahn <email@hidden>
  • Date: Mon, 09 Jan 2017 18:44:02 +0100

Thanks for the information!

On 09.01.2017 at 17:33 Ken Thomases wrote:

> On Jan 9, 2017, at 10:13 AM, Andreas Falkenhahn <email@hidden> wrote:



> I'm building some windows and controls in my app by manually
> creating NSWindow objects and the respective controls and then
> adding them to the NSWindow by using

>    [[win contentView] addSubview:control];

> The control and window sizes and their positions are all hard-coded
> in pixels.



> You may have thought they were specified in pixels, but that's not
> correct.  All of the APIs for sizing windows, views, controls, etc.
> take sizes and positions in "points".  These are NOT typographic
> points (~1/72") which you may be familiar with.  These are an
> abstract unit not necessarily related to real-world dimensions (such as inches) nor pixels.


> You can think of the size of a point as being chosen by the user
> (indirectly via System Preferences > Displays) such that 12-point
> text is comfortable to read at the typical screen distance.

>  Thus, it is assumed that the UI font size stays the
> same.




> Fonts are measured in the same point coordinate system, so that's
> kind of reasonable to assume _except_ that Apple has changed the
> system UI font on repeated occasions.  They try to keep the metrics
> pretty close, but it's just not possible to keep it exact, given their goals in changing the font.

> Now I was wondering how such code will behave on Retina Macs?
> Will it mess up completely because I use hard-coded position
> and size values but the font on Retina Mac is bigger?



> Because you work in abstract points, there's no problem with Retina
> displays.  Your windows, views, controls, etc. will remain at a
> comfortable/sensible size, they'll just have finer detail.  The main
> area of concern is bitmap images.  If you don't provide @2x versions
> of your images, they may get scaled up in terms of pixels to
> maintain their size in points.  That will result in chunky images.

>  I don't
> have a Retina Mac here so can somebody explain (or point me to
> some documents) how to write code that scales nicely on Retina
> Macs?




> https://developer.apple.com/high-resolution/
> https://developer.apple.com/library/content/documentation/GraphicsAnimation/Conceptual/HighResolutionOSX/Introduction/Introduction.html




> I'm familiar with Retina development on iOS. On iOS, position and
> size on Retina and Non-Retina devices are basically the same.
> To solve the problem of higher resolutions, there is a scale
> coefficient that can be queried by looking into "UIScreen.scale".
> This way apps written for non-Retina devices normally just work
> on Retina devices. Do Retina Macs use a similar implementation?




> More or less, yes.

> Is there any way to test if my app runs nicely on a Retina Mac
> without actually having a Retina Mac?


> Yes, you can use Quartz Debug to enable high-resolution display
> modes.  These basically cause Cocoa to see your screen as half its
> normal dimensions (in terms of points).  So, your app will display
> visually huge but with the finer detail that Retina enables.  You
> should just imagine that your screen is a small Retina display that you're standing too close to. ;)
> https://developer.apple.com/library/content/documentation/GraphicsAnimation/Conceptual/HighResolutionOSX/Testing/Testing.html#//apple_ref/doc/uid/TP40012302-CH6-SW2

> Regards,
> Ken

>


--
Best regards,
 Andreas Falkenhahn                            mailto:email@hidden

_______________________________________________

Cocoa-dev mailing list (email@hidden)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden


References: 
 >Manually building GUI and Retina Macs (From: Andreas Falkenhahn <email@hidden>)
 >Re: Manually building GUI and Retina Macs (From: Ken Thomases <email@hidden>)

  • Prev by Date: Re: Manually building GUI and Retina Macs
  • Next by Date: Weird NSPredicate structure when using "first" in keypath
  • Previous by thread: Re: Manually building GUI and Retina Macs
  • Next by thread: Weird NSPredicate structure when using "first" in keypath
  • Index(es):
    • Date
    • Thread