首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSTextField背后的NSCollectionViewItem

NSTextField背后的NSCollectionViewItem
EN

Stack Overflow用户
提问于 2012-02-25 02:44:40
回答 2查看 481关注 0票数 0

我在NSCollectionViewItem的视图上有一个NSTextField

当您单击某个NSCollectionViewItem时,该项目将被选中。

当您单击NSTextField时,它会获得焦点,但文本字段后面的NSCollectionViewItem不会被选中。

我想要更改最后一个行为,以便文本字段获得焦点,并且视图项目也被选中。

做这件事最好的方法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-25 03:22:07

我相信您必须子类NSTextField并重写mouseDown才能将事件传递给nextResponder (它应该设置为您的集合视图)

票数 1
EN

Stack Overflow用户

发布于 2013-03-20 12:02:33

我还有一个包含NSTextField的NSCollectionViewItem。我试图在Finder中重新创建图标的文本标签的基本外观和感觉。我还没有完成它,但到目前为止我所拥有的似乎已经回答了这个问题。

关键是让文本字段在开始时不可选。在文本字段上单击鼠标将被文本字段忽略,并将选择集合视图项。然后,在集合视图项的setSelection方法中,当它被选中时,将文本字段设置为可编辑。下一次鼠标单击文本字段将使其获得焦点。然后,当集合视图项被取消选择时,将文本字段设置回不可选择,并等待再次选择集合视图项。

代码语言:javascript
复制
-(void)awakeFromNib
{
    [self.textField setSelectable:NO];
}

-(void)setSelected:(BOOL)selected
{
    [super setSelected:selected];

    if (self.selected)
    {
        [self.textField setEditable:YES];
    }
    else
    {
        [self.textField setSelectable:NO];
    }
}

这回答了上面的问题,但显然,要想得到一个完整的解决方案还需要更多的东西。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9436259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档