我有一個靜態NSTextField
覆蓋在我的OS X應用程序中的一個大錯誤信息。我試圖讓它允許用戶點擊它下面的控件。NSTextField點擊?
在IB我已經選中「已啓用」,我已經檢查了「拒不急救員」
我也做它的代碼,因爲這是不工作:
[largeErrorText setEnabled:NO];
[largeErrorText setRefusesFirstResponder:YES];
仍它正在妨礙與它下面的對象進行交互。任何想法可能是什麼?
我有一個靜態NSTextField
覆蓋在我的OS X應用程序中的一個大錯誤信息。我試圖讓它允許用戶點擊它下面的控件。NSTextField點擊?
在IB我已經選中「已啓用」,我已經檢查了「拒不急救員」
我也做它的代碼,因爲這是不工作:
[largeErrorText setEnabled:NO];
[largeErrorText setRefusesFirstResponder:YES];
仍它正在妨礙與它下面的對象進行交互。任何想法可能是什麼?
我假定你所描述像下面的圖像的場景顯示:
內紅色矩形是NSTextField
標籤的框架輪廓,你說,即使你禁用文本字段並設置拒絕第一響應者,您的點擊不通過NSButton
?
此設計方案描述了一種稱爲「重疊同級視圖」的情況。如果可能的話,我通常會盡量避免這種情況。如果您不能,您可以通過確保NSTextField
標籤位於您希望能夠與之交互的所有其他UI對象「後面」來獲得所需的行爲。您可以通過選擇標籤並選擇編輯器>排列>發送到後面來完成此操作。這將確保該按鈕位於文本字段的前面,以便它可以正確攔截鼠標事件。
很棒的評論,但沒有回答這個問題。謝謝。 – 2015-12-03 15:12:28
我發現使對象對點擊透明的唯一方法是對該對象進行子類化(在您的情況下爲NSTextField)並覆蓋返回nil的hitTest方法。這樣NSTextField將不會響應點擊,所以下面的NSView會響應點擊。
- (NSView*)hitTest:(NSPoint)aPoint
{
return nil;
}
的可能重複[如何禁用自定義視圖的用戶交互(http://stackoverflow.com/questions/11740638/how-to-disable-user-interaction-in-a-custom-view ) – 2013-04-09 00:05:00
@GabrielePetronella:這個問題與那個無關 – NSGod 2013-04-09 00:30:13
這是關於禁用交互,不是嗎? – 2013-04-09 00:30:58