0

我遇到了一個我自己無法解決的非常奇怪的問題。我有幾個UI元素嵌入在作爲NSBorderlessWindowMask運行的NSWindow中。有2 NSSlider,3 NSButtonNSComboBoxNSColorWellNSControl無法在不同的Mac上工作

應用程序爲目標10.7構建,並啓用沙箱。

在我的開發機器上,每個元素都按預期工作。 NSComboBox有一個工作DataSourceDelegateNSColorWell也有效。當我點擊進入NSComboBox時,我可以在其中輸入文字。 NSColorWell打開一個顏色選擇。

當我將我的應用程序交給我的beta測試者時,無法編輯NSComboBoxNSColorWell。這意味着,我可以將元素添加到NSComboBoxDataSource(通過導入),並且可以在下拉菜單中選擇它們,但我無法點擊NSComboBoxCell並寫入文本。當我點擊NSColorWell時也不會打開顏色選擇。

我對所有可能導致此行爲的線索毫無頭緒。每個元素都被正確地連接起來,並且運行與我的beta測試器相同的二進制文件。這兩個系統都運行最新版本的Mountain Lion。我試圖創造它運行下面的NSComboBox方法的β測試儀NSButton

[self.nameCB reloadData]; 
[self.nameCB setEnabled:YES]; 
[self.nameCB setEditable:YES]; 
[self.nameCB setNeedsDisplay:YES]; 
[self.nameCB setFrame:self.nameCB.frame]; 
[self.nameCB becomeFirstResponder]; 
[self.nameCB setSelectable:YES]; 

無幫助。我不知道如何「調試」這種行爲。你有什麼建議嗎?


編輯:我能夠打破它一點。當我刪除線

[self.window setStyleMask:NSBorderlessWindowMask]; 

它的工作原理。但是我想從刪除標題欄中看起來很好看,所以它只會有所幫助。

+0

相同的問題..任何幫助? – Saranjith

+0

我接受的解決方案不適合你嗎? –

+0

我的項目在MRR,..這不會工作 – Saranjith

回答

0

由於我已經編輯了我的問題,我發現這個問題是由我的NSWindow上的NSBorderlessWindowMask風格造成的。除了子類NSWindow,我沒有發現任何其他方法。

我用this example爲指導。如果您只是從項目中提取CustomWindow類並將其添加到項目中,它也可以工作。然後只需在IB中設置你的窗口的類別CustomWindow

我仍然不知道是什麼導致了這個問題。如果有人有一個想法,請隨時留下下面的答案。

相關問題