【发布时间】:2013-01-16 21:53:45
【问题描述】:
我有一个“画布”视图,用户可以在其中在不同位置输入短字符串。我使用 NSTextField 进行输入或编辑,但是当不被编辑时,文本只是在视图的 draw 方法中绘制。
目前,每当需要输入或编辑时,我都会创建一个新的 NSTextField,并且不保留它,因此当它作为子视图被删除时,它可能会被释放。
这很好用,打字速度比处理器慢,没有明显的延迟。
最近我发现需要从程序的不同部分进入'完成编辑'方法,所以发送者不再一定是NStextField;我为用于此目的的文本字段添加了一个属性,现在在完成特定编辑任务时将其设置为 nil。这似乎仍然可以正常工作。
原则上,最好只保留一个 NSTextField,然后简单地从超级视图中添加或删除它,而不是总是创建一个新的?
稍后添加:我决定使用单个 NSTextField,根据需要将其放入和取出超级视图。这对我来说似乎“更干净”,但我仍然会对任何赞成或反对的意见感兴趣。
【问题讨论】:
标签: macos nsview nstextfield