为什么inLiveResize一直在跑?

来源:互联网 发布:万网有域名怎么建网站 编辑:程序博客网 时间:2024/04/28 09:49

今天调试程序的时候发现cpu不断在刷,后来找到是自定义NSMatrix子类的 inLiveResize 和 DrawRect 一直在被调用。后来追查到真凶,就是在自定义的NSCell子类的drawWithFrame方法中调用了setAttributedStringValue方法。

 

估计该方法会促发重绘消息,因此一直循环重绘。

 

以后在处理绘图函数drawXXX时一定要小心,避免调用到会触发该重绘函数响应的函数,这样的函数应该在重绘函数外调用。

 

原创粉丝点击