在 NSView 中执行拖放时出现 kCGErrorFailure
我创建了一个简单的拖放应用程序,其中有时会收到此异常消息,显示在调试器控制台中:
kCGErrorRangeCheck: CGSNewWindowWithOpaqueShape:不能 创建窗口
kCGErrorFailure:设置断点@ CGErrorBreakpoint() 捕获错误为 他们已被记录。
kCGErrorIllegalArgument: CGSMoveWindow:无效窗口 0x0
kCGErrorIllegalArgument: CGSOrderWindowList
kCGErrorIllegalArgument: CGSOrderWindowList
kCGErrorIllegalArgument: CGSGetWindowBounds:空窗口
kCGErrorIllegalArgument: CGSMoveWindow:无效窗口 0x0
kCGErrorIllegalArgument: CGSOrderWindowList
kCGErrorIllegalArgument: CGSGetWindowBounds:空窗口
任何人都可以告诉我为什么会发生这种情况以及如何解决它?
任何人都可以建议如何为 @CGErrorBreakpoint() 设置断点,以便我可以调试和跟踪其原因?
结论DragOperation中的代码是:
NSPoint dropLocation = [sender draggedImageLocation];
id dragSource = [sender draggingSource];
NSPasteboard *pb = [sender draggingPasteboard];
NSData *draggedData = [pb dataForType:IconDragDataType];
id unarchievedObject = [NSKeyedUnarchiver unarchiveObjectWithData:draggedData];
[unarchievedObject setFrameOrigin:dropLocation];
谢谢,
Miraaj
I have created a simple drag and drop application in which I am sometimes getting this exception msg, displayed in debugger console:
kCGErrorRangeCheck:
CGSNewWindowWithOpaqueShape: Cannot
create windowkCGErrorFailure: Set a breakpoint @
CGErrorBreakpoint() to catch errors as
they are logged.kCGErrorIllegalArgument:
CGSMoveWindow: Invalid window 0x0kCGErrorIllegalArgument:
CGSOrderWindowListkCGErrorIllegalArgument:
CGSOrderWindowListkCGErrorIllegalArgument:
CGSGetWindowBounds: NULL windowkCGErrorIllegalArgument:
CGSMoveWindow: Invalid window 0x0kCGErrorIllegalArgument:
CGSOrderWindowListkCGErrorIllegalArgument:
CGSGetWindowBounds: NULL window
Can anyone suggest me why is it occurring and how can I resolve it?
Also can anyone suggest how to set breakpoint for @CGErrorBreakpoint() so that I can debug and trace its cause?
The code in concludeDragOperation is:
NSPoint dropLocation = [sender draggedImageLocation];
id dragSource = [sender draggingSource];
NSPasteboard *pb = [sender draggingPasteboard];
NSData *draggedData = [pb dataForType:IconDragDataType];
id unarchievedObject = [NSKeyedUnarchiver unarchiveObjectWithData:draggedData];
[unarchievedObject setFrameOrigin:dropLocation];
Thanks,
Miraaj
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
要在 CGErrorBreakpoint 中设置断点,请打开断点窗口(命令-选项-B),双击显示“双击符号”的行,然后在文本字段中输入 CGErrorBreakpoint。
To set a breakpoint in CGErrorBreakpoint open the breakpoints window (command-option-B), double-click on the line that says "Double-Click for Symbol" and enter CGErrorBreakpoint in the text field.