Skip to Content
Cocoa Programming for OS X: The Big Nerd Ranch Guide
book

Cocoa Programming for OS X: The Big Nerd Ranch Guide

by Aaron Hillegass, Adam Preble, Nate Chandler
April 2015
Intermediate to advanced
556 pages
17h 47m
English
Big Nerd Ranch Guides
Content preview from Cocoa Programming for OS X: The Big Nerd Ranch Guide

Improving Hit Detection

The hit testing in DieView is pretty lazy. If the user clicks anywhere in the view, the die reacts. It would be better if the die only depressed when the user clicked in the die’s rectangle.

CGRect’s contains(_:) function can check whether a rectangle contains a point, and you can get the die’s rectangle from metricsForSize(_:).

There is a hurdle, however: NSEvent provides locationInWindow, but what you need is the point in the view’s coordinate system, which dieFrame is in. How can you convert locationInWindow to the correct coordinate system?

NSView provides a few methods for this very purpose:

 func convertPoint(aPoint: NSPoint, fromView aView: NSView?) -> NSPoint func convertPoint(aPoint: NSPoint, ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

Learning Cocoa with Objective-C, 4th Edition

Learning Cocoa with Objective-C, 4th Edition

Paris Buttfield-Addison, Jonathon Manning, Tim Nugent
Objective-C for Absolute Beginners: iPhone, iPad and Mac Programming Made Easy

Objective-C for Absolute Beginners: iPhone, iPad and Mac Programming Made Easy

Stefan Kaczmarek, Brad Lees, Gary Bennett, Mitch Fisher

Publisher Resources

ISBN: 9780134077130Purchase book