你能在NSTextField中显示一个(属性)字符串,但是使用另一个字符串进行编辑吗?

时间:2014-03-01 10:51:41

标签: objective-c macos cocoa nstextfield

我有一个CoreData对象,我希望在NSTextField中显示该对象的信息。

该对象具有两个相关属性:

@property (nonatomic, retain) NSString *text;
@property (nonatomic, readonly) NSAttributedString *displayText;

我想在文本字段中显示后者,但允许用户编辑前者。 (后一个字符串是前者的简单转换,删除了一些字符并应用了一些属性。)

我怎样才能做到这一点?


还有两点值得注意:

  • NSTextField位于NSOutlineView内,这意味着未正确调用委托方法control:textShould{Begin,End}Editing::请参阅this question。这意味着我无法在编辑之前和之后手动设置字段的.attributedStringValue

  • 由于我的对象是NSManagedObject的子类,因此我不能将NSFormattersetObjectValue:一起使用(因为它没有实现<NSCopying>)。因此,我似乎无法使方法in this question起作用。


我愿意使用NSFormatter子类,或者(最好)找到一种方法来绑定正常显示的文本以及直接编辑属性。

我的大纲视图是基于视图的,所以如果比NSTextField更适合工作,我很乐意使用它。

0 个答案:

没有答案