Objective c 以编程方式将NSTextView绑定到NSArrayController后,撤消管理器已停止工作
当我将Objective c 以编程方式将NSTextView绑定到NSArrayController后,撤消管理器已停止工作,objective-c,cocoa,core-data,nsarraycontroller,Objective C,Cocoa,Core Data,Nsarraycontroller,当我将NSTextView绑定到storyBoard中的NSArrayController时,“撤消”可以正常工作,但每次保存上下文时,NSTextView都会失去焦点。 因此,我以编程方式将NSTextView绑定到NSArrayController: [_noteTextView bind: NSAttributedStringBinding toObject: _noteArrayController.selection withKeyPath: @"
NSTextView
绑定到storyBoard
中的NSArrayController
时,“撤消”可以正常工作,但每次保存上下文时,NSTextView
都会失去焦点。
因此,我以编程方式将NSTextView
绑定到NSArrayController
:
[_noteTextView bind: NSAttributedStringBinding
toObject: _noteArrayController.selection
withKeyPath: @"noteByUser"
options: (@{
NSContinuouslyUpdatesValueBindingOption : @YES,
NSAllowsEditingMultipleValuesSelectionBindingOption : @YES,
NSConditionallySetsEditableBindingOption : @YES,
NSRaisesForNotApplicableKeysBindingOption : @YES })];
现在,它并没有放松对保存的关注,但撤销功能停止了对
NSTextView
的工作,绑定到故事板中NSArrayController
的Main窗口中的其他视图正确响应撤销命令。程序绑定的工作方式应与xib中的绑定相同。我认为这不会解决你的问题。如果要以编程方式绑定,选择
应位于关键路径中。文本视图的“允许撤消”是否已打开?其他视图会失去焦点吗?是否保存了对文本的更改?是的,保存对文本视图的更改时,NSTextView不会失去焦点,只是撤消不起作用。当我通过故事板绑定NSTextView时,每次我保存主上下文时,它都会开始失去焦点。我再次检查了“撤消”功能,但NSTextView只有在应用程序重新启动后才会更新它。我确实设置了NSContinuouslyUpdatesValueBindingOption:@是的,为什么不同时使用undo进行更新。\u noteArrayController。在执行bind语句的过程中计算所选内容。您应该使用keypath选择绑定到\u noteArrayController
。noteByUser
编程绑定的工作原理应与xib中的绑定相同。我认为这不会解决你的问题。如果要以编程方式绑定,选择
应位于关键路径中。文本视图的“允许撤消”是否已打开?其他视图会失去焦点吗?是否保存了对文本的更改?是的,保存对文本视图的更改时,NSTextView不会失去焦点,只是撤消不起作用。当我通过故事板绑定NSTextView时,每次我保存主上下文时,它都会开始失去焦点。我再次检查了“撤消”功能,但NSTextView只有在应用程序重新启动后才会更新它。我确实设置了NSContinuouslyUpdatesValueBindingOption:@是的,为什么不同时使用undo进行更新。\u noteArrayController。在执行bind语句的过程中计算所选内容。您应该使用keypath选择绑定到\u noteArrayController
。noteByUser