0

我有一个“画布”视图,用户可以在其中输入不同位置的短字符串。我使用 NSTextField 进行条目或编辑,但是当不被编辑时,文本只是在视图的 draw 方法中绘制。

目前,每当需要输入或编辑时,我都会创建一个新的 NSTextField ,并且不保留它,因此当它作为子视图被删除时,它可能已被释放。

这工作正常,打字速度比处理器慢,没有明显的延迟。

最近发现需要从程序的不同部分去'finish editing'方法,所以sender不再一定是NStextField;我为用于此目的的文本字段添加了一个属性,现在在完成特定编辑任务时将其设置为 nil。这似乎仍然可以正常工作。

作为一个原则问题,最好简单地保留一个 NSTextField,然后简单地从超级视图中添加或删除它,而不是总是创建一个新的?

稍后添加:我决定使用单个 NSTextField,根据需要将其放入和取出超级视图。这对我来说似乎“更干净”,但我仍然会对任何赞成或反对的意见感兴趣。

4

1 回答 1

0

你的决定可能是最明智的。您只需要使用一个文本字段,并且由于您假设它会释放,我猜它会保留在内存中,并且在某些时候它会吃掉各种内存。

于 2013-01-22T04:23:13.533 回答