【问题标题】:Keep an NSTextField (non visible) or start a new one when needed?保留一个 NSTextField (不可见)或在需要时开始一个新的?
【发布时间】:2013-01-16 21:53:45
【问题描述】:

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

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

这很好用,打字速度比处理器慢,没有明显的延迟。

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

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

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

【问题讨论】:

    标签: macos nsview nstextfield


    【解决方案1】:

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

    【讨论】:

    • 谢谢。由于我使用的是 ARC,因此我不清楚保留问题,但这对于保留单个文本字段来说不是问题。
    猜你喜欢
    • 1970-01-01
    • 2013-02-05
    • 1970-01-01
    • 2017-12-14
    • 1970-01-01
    • 1970-01-01
    • 2020-10-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多