我最近发布了关于 MonoMac 中的一个错误,在该错误中,单击按钮 20 次左右后窗口会突然消失。事实证明,该错误似乎不会影响 Xamarin.Mac,因此我将项目切换到该错误。
但是现在我在不同的上下文中看到了几乎相同的错误:在 NSTextField 中键入几行文本后,窗口以完全相同的方式消失。没有错误,没有例外;它就消失了。噗,走了!
我在一个简单的项目中重现了这一点:您可以通过创建一个新的空 Xamarin.Mac 项目、将此代码添加到一个新文件中并运行来自己查看它。然后将键盘捣碎一会儿。5 或 6 行后,窗口消失。
(请注意,当我选择菜单命令时,应用程序菜单会继续工作,写入日志消息并执行我的代码。所以它看起来不像应用程序本身已经崩溃。)
奇怪的是,这似乎只发生在该字段位于 IsFlipped 已被覆盖的 NSView 子类中时。但是 IsFlipped 返回 true 或 false 并不重要——如果方法存在,就会出现错误;如果注释掉,该错误似乎不会发生。
那么:有没有其他人在 Xamarin.Mac 中遇到过这种错误?也许在其他情况下,这会给我们更多关于根本原因的线索?Xamarin 新手的任何调试技巧?
(我知道我可以通过避免 IsFlipped 在某些项目中解决它,但我担心它会以其他方式弹出来咬我。)