我有一個應用程序與2獨立NSWindow加載。如何讓NSView立即獲得焦點/第一響應者接受mouseDown事件?
每個窗口都有一個小表,其中有兩個項目。
這裏的問題我不能似乎解決 - >
如果窗口#1主/專注,我可以點擊通常表中的各行。但是,如果我想單擊窗口#2中的表中的行,我必須單擊表格兩次。第一次單擊以獲得活動/聚焦的Window#2,最後第二次單擊以實際選擇該行。
我怎樣才能得到在NSTableViews中只有一個點擊行(無論他們的窗口是否在焦點或不)?
我有一個應用程序與2獨立NSWindow加載。如何讓NSView立即獲得焦點/第一響應者接受mouseDown事件?
每個窗口都有一個小表,其中有兩個項目。
這裏的問題我不能似乎解決 - >
如果窗口#1主/專注,我可以點擊通常表中的各行。但是,如果我想單擊窗口#2中的表中的行,我必須單擊表格兩次。第一次單擊以獲得活動/聚焦的Window#2,最後第二次單擊以實際選擇該行。
我怎樣才能得到在NSTableViews中只有一個點擊行(無論他們的窗口是否在焦點或不)?
我子類的NSTableView的。
-(BOOL)acceptsFirstMouse:(NSEvent *)theEvent {
return YES;
}
問題是當你的第一個窗口處於活動狀態時,因爲它是第一響應者,所以顯然你的tableview將是window1的下一個響應者,直到你選擇它。但對於第二個窗口,您的第一個響應者將是window2。所以你必須在表上雙擊兩次,因爲第一響應者正在設置爲window2,並且它正在設置到表2以創建下一個響應者。如果你想單擊並選擇window2的表格,那麼你可以通過綁定或編程來完成。
但是如何?那就是我不知道的...... –
[[self window] setInitialFirstResponder:(NSView *)tableView2]; [[self window] makeFirstResponder:(NSView *)tableView2];試試這個樣子 –
您是否試過這段代碼?你究竟把它放在哪裏?設置第一響應似乎沒有工作..當我仍然必須點擊表格行兩次,而不是一次.. –