NSTextView / NSScrollView - 一些问题可以帮助我理解它的正确用法

时间:2012-05-22 14:59:01

标签: xcode cocoa nstextview nsscrollview

我创建了一个“注释”字段,用于存放我希望存储在自定义对象中的多段文本。最初,我只是使用NSTextField作为临时解决方案,但这不允许我滚动或有多段文字......

在IB中我放置了一个NSTextView(它似乎被包装在一个NSScrollView中。)执行我的程序后,似乎允许我在多个段落中输入文本,滚动等等。简而言之,它看起来恰好是什么我想要它。到目前为止一切都很好。

现在,我需要从该字段中检索数据并将其存储在我的自定义对象中。这是我在开发人员文档中丢失的地方......

我的目标非常直接:

  1. 允许用户在框中输入。

  2. 当用户移动到另一个字段时,将该框的内容存储到我的自定义对象中的变量(数组等)中,并留下注释字段。

  3. 下次查看记录时,在文本框中显示用户存储的文本。

  4. 第二,是否有一种简单的方法可以将数据检索并存储到我的自定义对象中的“notes”变量中(例如NSString对象?我认为有多个会在这里将NSString对象排除在外,但也许我错了)或者我是否进入了一个更复杂的区域(例如必须将它存储在NSString对象的数组中等)?

    任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:2)

您可以使用由{NSText定义的-string获取数据(例如NSString *savedString = [aTextView string]

您的保存代码可以放在NSTextDelegate中(读取,NSTextView的代理,因为它是直接的超类),在– textDidEndEditing:中将被调用,当编辑时已完成(例如,当用户在视图外部点击时)或其他方法之一。

然后,如果您清空文本视图或其他内容,重新加载已保存的字符串,请在编辑开始前使用[textView setString:savedString]

NSTextDelegate文档:here


当你说“将盒子的内容存储到一个变量(数组等)中时,我不确定你是什么样的”你是否希望有一系列自定义注释?文本视图存储一串数据,所以存储其值的最简单方法是使用一个字符串;如果需要一个音符数组,则必须将字符串值拆分为不同的段落,这不应该太难。