背景:
我正在Cocoa / Objective-C中构建一个基于视图的NSTableView-esque控件,它提供了易于使用的UITableView,能够在Interface Builder中布局视图,而不是尝试子类化NSCell.它的资源也很聪明,因为它采用了类似UITableView的类似可重用单元格范例.当然,这都是在NSScrollView内部完成的.
我已经完成了大部分棘手的视图交换,并且正在工作.滚动时,如果视图被完全剪切,则会将其添加到未使用的视图池中.类似地,如果未显示的视图进入可查看区域,它会尝试从未使用的池中获取视图,如果没有可用,则会从持有视图原型的nib创建一个新视图.
类似的解决方案确实存在,但我喜欢修修补补,我很乐意自己实施:).但是,我不知道处理这个问题的解决方案,我需要一些建议!
问题:
例如,假设每个视图都包含一个文本字段.如果正在编辑文本字段,并且用户开始滚动,我希望该单元格不会被释放到池中,以便它不会“失去焦点”,或者“聚焦”到新显示的视图重用已发布的那个.是否有一种智能方法可以将视图标记为正在编辑而无需创建自定义视图的程序员拦截事件,并将其标记为?
感谢您的帮助!
最佳答案 您的视图控制器可以符合
NSEditorRegistration
非正式协议.它旨在处理这个问题.