2011-09-03 127 views
12

嗨我在我的一個應用程序中實現了一個NSPopover,但popover不會關閉。我猜想,一旦我點擊了別的東西,它就會關閉,但不是。我知道有一個關閉popover行動,但只適用於不同的按鈕。我怎樣才能讓它看到彈出窗口是打開的,以及當按下同一個按鈕時彈出窗口關閉彈出窗口?如何採取措施關閉NSPopover?

+0

想通了如何做到這一點。首先在xCode 4中單擊Interface Builder中的Popover,然後轉到側邊欄上的attributes部分,並將彈出窗口的行爲更改爲Transient而不是默認的Application-Defined。這應該使它消失! – sridvijay

+3

關於解決問題的補充措施,但通過提供實際的答案帖子,即使您回答自己的問題,也可以提供更好的答案。點擊下面的「回答你的問題」按鈕。此外,這個問題的標籤很差。考慮添加一個或兩個與您所詢問的平臺或語言相關的標籤。這將幫助其他有同樣問題的人找到你制定的答案! – SingleNegationElimination

+0

謝謝,我剛剛添加了另一個答案,並添加了更多標籤! – sridvijay

回答

23

我解決了這個問題!

  • 首先繼續並單擊您的.xib文件。
  • 如果您看到第一個響應者框和文件所有者,請單擊彈出窗口。
  • 在邊欄上轉到屬性中心
  • 將行爲從應用程序定義更改爲瞬態,它應該工作!

這應該會讓popover消失,一旦有人點擊了popover外部。

另一種關閉彈出窗口的方法是有一個單獨的按鈕。 只需添加另一個NSButton,然後將其鏈接到側邊欄上的彈​​出窗口,並將其設置爲接收操作 - >執行關閉:

+2

此外,如果您選擇Semi-transient,您在彈出窗口外的第一次點擊將同時關閉彈出窗口並註冊其下方的視圖(即,如果直接點擊另一個視圖中的按鈕,彈出窗口會關閉,按鈕將被按下。) –