2017-05-28 19 views
0

我試圖在NSWindow中設置NSButton的關鍵等效項。我使用下面的代碼在我的視圖控制器類:NSButton失敗的關鍵等效

someButton.keyEquivalent = "\r" 

然而,當我運行應用程序,按下該鍵將不執行按鈕的動作,但發揮系統恐懼的聲音。

包含此NSButton的窗口將作爲使用模態NSStoryboardSegue的窗口(不是圖紙)顯示。如果我在我的初始窗口中使用相同的代碼和配置,則等效鍵可正確執行。演示的類型會導致這個問題嗎?謝謝。

編輯

原來這可能是一個可能的錯誤。當在IB中取消選擇標題欄時,等效鍵不起作用。我現在試圖找到一種方法來保持與相同的窗口外觀選擇。保持選中選項並使用NSWindow上的titlebarAppearsTransparent屬性,我已成功刪除標題欄,但現在我不確定如何刪除窗口邊框。有任何想法嗎?

回答

1

你碰巧在你的窗口中禁用了標題欄嗎?如果標題欄被禁用(即使標題欄未在表單中使用),那麼在模式窗口中鍵盤事件被忽略的地方有一些意外的行爲(猶豫稱它爲bug)。

+0

我這樣做是因爲我想刪除窗口的邊框。有任何想法嗎?我希望這個「bug」被報告 –

+0

如果您將它作爲工作表呈現,這是不必要的,因爲標題欄從不在工作表上顯示。所以重新開啓並測試;我敢打賭,它會看起來像你想要的方式,並正常工作。如果您還想將場景用作非模態,請在'prepareForSegue ...'中的代碼中切換標題欄。 –

+0

不幸的是,我把它作爲一個普通的窗口展示,而不是一張表,因此我真的需要我的窗口不包含標題欄。有沒有另一種方法可以隱藏標題欄和後續的窗口邊界,同時保持開關?我會更新我的問題 –