2011-04-05 204 views
1

目前我正在嘗試使用NSWindow的enterFullScreenMode:選項使窗口的contentView的子視圖新的全屏視圖,這很好。但是,我的視圖包含一個NSTextField,其行爲怪異。當我切換到全屏模式時,它變爲不活動狀態(似乎會退出firstResponder狀態)。我可以通過點擊它並通過撥打電話可可:NSTextField和全屏模式與enterFullScreenMode:

[myField becomeFirstResponder]; 

這可以很好地使用它,這是文檔所不鼓勵的。他們說我應該總是打電話

[myWindow makeFirstResponder: myField]; 

它在全屏模式後不再工作。然而最奇怪的是,當在現場輸入某些東西時,然後退出輸入的文本就消失了。當切換回全屏模式時,它甚至可能會再次回來。任何想法我做錯了什麼?或者有關如何使NSTextField在全屏模式下退出firstResponder狀態而不使用氣餒的API調用的任何反饋?提前

感謝, 薩科

+3

好,稍安毋躁。我剛剛發現(希望這有助於某人)。將視圖放入全屏模式時,Cocoa會爲其分配兩個_NSFullScreenWindow類的新窗口。所以你仍然可以調用'[[myField窗口] makeFirstResponder:myField]'...也許我現在也會破解這個奇怪的行爲。如果是的話,會評論回來。 – Nicolas 2011-04-05 17:31:17

回答

1

你在正確的10.6意思?

[myWindow makeFirstResponder: myField]; 

enterFullScreenMode將作出新的窗口視圖,因此myWindow實際上是進入全屏前的窗口。

你應該使用

[[self window] makeFirstResponder: myField];