2012-04-05 51 views
0

當我的x和y座標等於鼠標座標時,如何在繪製NSMakeRect時作出界限。我不希望我的NSRect要繪製過去的某coordiante如何在NSRect中使用NSRange或NSMax X

NSMakeRect(mouseLoc.x, mouseLoc.y, 50, 50); 

如何建立一個範圍或最大x和y的值,如果讓我怎麼將其納入我的MakeRect?

感謝

+0

你能更詳細地描述你想要做什麼嗎?你想要一個矩形跟隨鼠標,但要被限制在一個更大的矩形內?或者是其他東西? – user1118321 2012-04-05 05:39:04

+0

是的!我可以只做減法,但我更喜歡從較大的矩形設置邊界 – 2012-04-05 05:42:17

回答

0

如果你正在構建64位,然後NSRecttypedef版是CGRect。你可以做到以下幾點:

CGRect oldRect; // This is the rectangle's previous position saved somewhere 
CGRect newRect = NSMakeRect (mouseLoc.x, mouseLoc.y, 50, 50); 
if (CGRectContainsRect (constrainingRect, newRect)) 
{ 
    oldRect = newRect; 
} 

所以你構建新的矩形,看其是否包含在較大的矩形邊框,如果是這樣,取代舊的與新的。否則,再次使用舊的。

+0

爲什麼不使用'NSContainsRect()'? – 2012-04-05 06:49:23

+0

因爲我忘了它存在嗎? :-)這也應該起作用。 – user1118321 2012-04-05 22:49:18