这让我发疯,我已经尝试了大约一个星期。希望某种鞋底可以提供帮助。我正在尝试创建一个新的模式弹出颜色选择器。但是,StopModal()
不断创建一个新窗口。
我以NSWindow
编程方式创建了一个新的有点像这样:
class ColorPicker:NSWindow{
void ColorPicker(IntPtr Value):base(Value){
}
void ColorPicker(Color StartColor){
//Set up window here.
}
public void ShowModal(NSWindow NewParent){
this.ParentWindow = NewParent;
NSApplication.SharedApplication.RunModalForWindow(this);
return DialogResult;
}
}
我这样创建:
ColorPicker CP=new ColorPicker(Color.Red);
然后展示它
CP.ShowDialog(MyMainWindow);
我在表单上有一个按钮可以关闭它并调用
NSApplication.SharedApplication.StopModal();
但由于某种原因,这会通过调用创建第二个窗口:
void ColorPicker(IntPtr Value):base(Value){
}
然后我得到泄漏错误,很快它就崩溃了:
NativeRelease ERROR]: type: ColorPicker handle: 137041376 count: 2 gchandle: 0
objc[350]: Object 0x103070 of class NSConcreteMapTable autoreleased with no pool in place - just leaking - break on objc_autoreleaseNoPool() to debug