我的情况很奇怪。
我已经使用一些自定义代码对NSTableview进行了子类化。 我在一个继承自这个子类的NSWindow中有一个tableView。另一个在窗口上打开的NSPanel中的tableView。
在子类中,我使用函数performSelector:withObject:afterDelay:
调用一个方法。
该方法成功调用了NSWindow中的表,但它不适用于NSPanel中的表。
如果我直接调用该方法(不使用延迟函数),而是可以正常工作。因此,似乎performSelector:withObject:afterDelay:
无法在NSPanel中工作。
任何提示?
答案 0 :(得分:0)
NSPanel很可能以模式运行,并且有自己的事件循环,因此请performSelector:withObject:afterDelay:inModes:
@[NSDefaultRunLoopMode, NSModalPanelRunLoopMode]
作为inModes parm。
请参阅runModalForWindow
了解事件循环内容的要点。
同样的问题reported here。