gpt4 book ai didi

cocoa - 是否有一种智能方法来处理 NSScrollView 中的 View 交换/重用?

转载 作者:行者123 更新时间:2023-12-03 16:15:07 26 4
gpt4 key购买 nike

背景:

我正在 Cocoa/Objective-C 中构建一个基于 View 的 NSTableView 式控件,它提供了 UITableView 的易用性,能够在 Interface Builder 中布局 View ,而不是尝试子类化 NSCell。它的资源也很智能,因为它采用了类似 UITableView 的可重用单元范式。当然,这一切都是在 NSScrollView 内部完成的。

我已经解决了大部分棘手的 View 交换问题,并且正在工作。滚动时,如果 View 被完全裁剪,则会将其添加到未使用的 View 池中。同样,如果未显示的 View 进入可视区域,它会尝试从未使用的池中获取 View ,如果没有可用的 View ,它会从保存 View 原型(prototype)的 Nib 创建一个新 View 。

确实存在类似的解决方案,但我喜欢修补并喜欢自己实现它:)。但是,我不知道处理此问题的解决方案,我需要一些建议!

问题:

例如,每个 View 都包含一个文本字段。如果正在编辑文本字段,并且用户开始滚动,我希望该单元格不被释放到池中,这样它就不会“失去焦点”,或“将焦点赋予”新显示的 View 重用已发布的版本。是否有一种智能方法可以将 View 标记为正在编辑,而不需要创建自定义 View 的程序员拦截事件并将其标记为此类?

感谢您的帮助!

最佳答案

您的 View Controller 可以符合NSEditorRegistration非正式协议(protocol)。它正是为了解决这个问题而设计的。

关于cocoa - 是否有一种智能方法来处理 NSScrollView 中的 View 交换/重用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6482052/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com