首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从NSTokenField中删除所选令牌

从NSTokenField中删除所选令牌
EN

Stack Overflow用户
提问于 2015-03-17 20:57:05
回答 1查看 351关注 0票数 1

我正在尝试向按钮添加删除选定标记操作,以删除NSTokenField中选定的令牌。

代码语言:javascript
复制
@IBAction func deleteSelectedTag(sender: AnyObject) {
    let fieldEditor = (tagTokenField.cell() as! NSCell).fieldEditorForView(tagTokenField)
    if fieldEditor?.selectedRanges.count > 0 {
        fieldEditor?.delete
    }
}

此代码不会删除选定的令牌。有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2015-03-19 20:31:20

我找到的唯一方法是使用字段编辑器返回的选定范围编辑NSTokenField.value绑定到的数组:

代码语言:javascript
复制
@IBAction func deleteSelectedTag(sender: AnyObject) {
    let fieldEditor = (tagTokenField.cell() as! NSCell).fieldEditorForView(tagTokenField)
    if fieldEditor?.selectedRanges.count > 0 {
        let range = fieldEditor!.selectedRanges.first as! NSRange
        fieldEditor!.setSelectedRange(NSMakeRange(0, 0)) // Set to no selection
        selectedNote.tags!.removeRange(range.location..<range.location + range.length)
    }
}

经过测试,我发现selectedRanges总是只返回一个NSRange,其中location是令牌索引,length是所选令牌的数量。至少我没有找到在NSTokenField中选择非连续标记的方法。

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

https://stackoverflow.com/questions/29099684

复制
相关文章

相似问题

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