objective-c - 如何在 Cocoa Mac OS 开发中从多个 NSCollectionView 中唯一标识一个 NSCollectionview?
问题描述
我在一个 NsViewcontroller 上显示了 4 个 NscollectionView。我无法检测到每个 NscollectionView Uniquely 。我曾尝试通过设置标签值来实现它,但是在可可开发中它说标签属性是只读的。让我知道是否有任何更好的方法或我可以做的任何纠正来解决这个问题。
注意:- 我在我的 ios 应用程序上做了同样的事情,没有问题,在 ios 中设置标签并不麻烦。
- (void)viewDidLoad {
[super viewDidLoad];
self.cinemaNowCollectionView.tag = 1;
self.recentMovieCollectionView.tag = 2;
}
解决方案
tag
NSView
是(哪些NSCollectionView
子类)上的只读属性。
标签属性文档说:
此属性的默认值为 –1。子类可以覆盖此属性以为视图提供单独的标签,可能将属性重新定义为读写,以便您可以更轻松地修改它。
我假设NSControl
已经这样做了,所以很多默认对象默认支持读/写标签。
您可以按照文档中的说明进行操作,并NSCollectionView
使用可写标签创建一个子类。
或者,正如评论中所建议的,只需通过指针确定您的观点:
- (void)collectionView:(NSCollectionView *)collectionView didSelectItemsAtIndexPaths:(NSSet<NSIndexPath *> *)indexPaths
{
if (collectionView == self.cinemaNowCollectionView)
{
}
// etc
}
推荐阅读
- c# - 在 .Net Core 2.0 和淘汰赛 spa 模板中使用“Bootstrap4 和 popper.js”时找不到模块“aspnet-webpack”
- verilog - 为什么我在测试台上出现语法错误?
- email-validation - 邮箱存在检查并避免黑名单
- python - 调试从 jupyter notebook 调用的 .py 代码
- java - javafx java.lang.NullPointerException 控制器类
- r - 在另一个字符串(2)中匹配字符串(1)并根据字符串(2)提取位置信息
- pyspark - Spark 应用程序在 1 小时后在 EMR 中突然被杀死,并且 livy 会话过期。原因和解决方案是什么?
- haskell - 断言是如何使用的?
- ios - 从 UIImagePickerController 获取 PHAsset
- spring - 无法在 Spring MVC 中自动装配字段