我遇到了一个很奇怪的问题,我一个人解决不了。我在NSWindow中嵌入了几个UI元素,它们作为NSBorderlessWindowMask运行。有两个NSSlider,3个NSButton,一个NSComboBox和一个NSColorWell。
应用程序为目标10.7构建,并启用了沙箱。
在我的开发机器上,每个元素都按预期工作。NSComboBox有一个工作的DataSource和Delegate。NSColorWell也能工作。当我点击NSComboBox时,我可以在其中键入一个文本。NSColorWell打开一个颜色选择。
当我把我的应用程序交给我的测试版测试人员时,NSComboBox和NSColorWell就无法编辑了。这意味着,我可以将元素添加到NSComboBox的NSComboBox中(通过导入),它们可以在下拉菜单中选择,但我不能单击NSComboBoxCell并编写文本。此外,当我单击NSColorWell时,不会打开颜色选择。
我一点也不知道是什么导致了这种行为。每个元素都被正确地连接起来,并且我运行与我的测试版测试器相同的二进制。这两个系统都运行山狮的最新版本。我尝试为测试版测试器创建一个NSButton,它在NSComboBox上运行以下方法
[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];它起作用了。但是我想从移除标题栏中得到一个很好的效果,所以这只会有一点帮助。
发布于 2013-07-03 16:21:15
当我已经编辑到我的问题中时,我发现这个问题是由我的主NSBorderlessWindowMask上的NSWindow样式引起的。除了子类NSWindow之外,我找不到别的方法了。
我用这个例子做向导。如果您只从项目中提取CustomWindow类并将其添加到项目中,它也能工作。然后将IB中窗口的类设置为CustomWindow
我还是不知道是什么引起了这个问题。如果有人有想法,请在下面留下另一个答案。
https://stackoverflow.com/questions/17434664
复制相似问题