performSelector:withObject:afterDelay: 不在 NSPanel 中工作?
performSelector:withObject:afterDelay: not working in a NSPanel?
我有一个奇怪的情况。
我已经使用一些自定义代码将 NSTableview 子类化。
我在继承自该子类的 NSWindow 中有一个 tableView。 NSPanel 中的另一个 tableView 在 window.
上打开
在子类中,我用函数 performSelector:withObject:afterDelay:
调用了一个方法。
NSWindow中的table调用成功,NSPanel中的table调用失败
如果我直接调用该方法(不使用延迟函数),它就会起作用。因此,performSelector:withObject:afterDelay:
似乎无法在 NSPanel 中工作。
有什么建议吗?
NSPanel 很可能 运行 模态,有它自己的事件循环,所以尝试 performSelector:withObject:afterDelay:inModes:
和 @[NSDefaultRunLoopMode, NSModalPanelRunLoopMode]
作为 inModes 参数。
请参阅 runModalForWindow
了解事件循环内容的要点。
同样的问题reported here。
我有一个奇怪的情况。
我已经使用一些自定义代码将 NSTableview 子类化。 我在继承自该子类的 NSWindow 中有一个 tableView。 NSPanel 中的另一个 tableView 在 window.
上打开在子类中,我用函数 performSelector:withObject:afterDelay:
调用了一个方法。
NSWindow中的table调用成功,NSPanel中的table调用失败
如果我直接调用该方法(不使用延迟函数),它就会起作用。因此,performSelector:withObject:afterDelay:
似乎无法在 NSPanel 中工作。
有什么建议吗?
NSPanel 很可能 运行 模态,有它自己的事件循环,所以尝试 performSelector:withObject:afterDelay:inModes:
和 @[NSDefaultRunLoopMode, NSModalPanelRunLoopMode]
作为 inModes 参数。
请参阅 runModalForWindow
了解事件循环内容的要点。
同样的问题reported here。