2013-07-27 102 views
0

我想在Xcode 4.6.3中創建八個自定義按鈕(NSButton)。那些是一個圈子的一部分。我爲他們每個人使用了一個標準的矩形按鈕,爲每個片段添加一個自定義圖像。但是,當我將這些部分放在一個圓中時,無法單擊其中一些按鈕,因爲它們周圍的矩形區域重疊,並且無法到達另一半的按鈕。自定義形狀NSButton

我想知道是否有任何方法使按鈕形狀至少爲三角形,以便我可以點擊所有這些按鈕?

+0

你想要做什麼樣的自定義,在該段上扔更多的燈東西 – Amitg2k12

+0

我想按鈕的形狀從矩形到段的形狀,或者至少類似於它。問題如下:當我點擊一個按鈕時,所選表面是矩形的,而不是一個段。由於該按鈕在屏幕上佔用的空間比預期的多,因此我無法訪問該圈中的其他按鈕。 – SevenFridays

回答

1

從文檔的「查看編程指南」:

注:由於性能原因,可可並不強制同級視圖中剪切或保證正確的失效和圖紙的行爲,當兄弟的意見重疊。如果您希望在另一個視圖前面繪製視圖,則應該使前視圖成爲後視圖的子視圖(或後代)。

換句話說,你不能指望重疊視圖正確處理鼠標事件。沒有辦法繞過視圖佔據矩形框架的事實。您必須製作一個單獨的視圖來執行所有圓形段的工作(包括繪圖和事件處理,以及可選的鼠標移動事件)。 YOu將不得不使用三角函數來計算鼠標點擊發生在哪個段上,並通過重新繪製段並調用所需的操作來恰當地響應,就像按下按鈕一樣。