我正在尝试向按钮添加删除选定标记操作,以删除NSTokenField中选定的令牌。
@IBAction func deleteSelectedTag(sender: AnyObject) {
let fieldEditor = (tagTokenField.cell() as! NSCell).fieldEditorForView(tagTokenField)
if fieldEditor?.selectedRanges.count > 0 {
fieldEditor?.delete
}
}此代码不会删除选定的令牌。有什么想法吗?
发布于 2015-03-19 20:31:20
我找到的唯一方法是使用字段编辑器返回的选定范围编辑NSTokenField.value绑定到的数组:
@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中选择非连续标记的方法。
https://stackoverflow.com/questions/29099684
复制相似问题