- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我注意到我的应用程序出现了奇怪的行为,但找不到修复它的方法:我有 NSOutlineView 和自定义 NSTableRowView 并支持拖放。
当我首先在 outlineview 上拖动项目(例如文件)时,它会绘制正确的高光(我已经覆盖了 drawDraggingDestinationFeedbackInRect),但在第二次拖动时,我有这个蓝色高亮,如果我调试 View 层次结构我可以看到 NSView 被添加到该行。
我附上了小动画,它准确地显示了发生了什么(我还添加了具有相同 NSTableRowView 的 NSTableView):
顶部:NSOutlineView
底部:NSTableView
View 层次结构(对于 NSOutlineView):
这是我的 NSTableRowView
代码import Cocoa
class TestRowView: NSTableRowView {
override func drawSelectionInRect(dirtyRect: NSRect) {
NSColor.yellowColor().setFill()
NSBezierPath(rect: self.bounds).fill()
}
override func drawDraggingDestinationFeedbackInRect(dirtyRect: NSRect) {
NSColor.greenColor().setFill()
NSBezierPath(rect: self.bounds).fill()
}
}
下面是 NSOutlineView 的数据源和委托(delegate)方法:
func outlineView(outlineView: NSOutlineView, numberOfChildrenOfItem item: AnyObject?) -> Int {
return item == nil ? allItems.count : 0
}
func outlineView(outlineView: NSOutlineView, isItemExpandable item: AnyObject) -> Bool {
return false
}
func outlineView(outlineView: NSOutlineView, child index: Int, ofItem item: AnyObject?) -> AnyObject {
return allItems[index]
}
func outlineView(outlineView: NSOutlineView, viewForTableColumn tableColumn: NSTableColumn?, item: AnyObject) -> NSView? {
return outlineView.makeViewWithIdentifier("DataCell", owner: self)
}
func outlineView(outlineView: NSOutlineView, rowViewForItem item: AnyObject) -> NSTableRowView? {
return TestRowView()
}
func outlineView(outlineView: NSOutlineView, heightOfRowByItem item: AnyObject) -> CGFloat {
return 60.0
}
func outlineView(outlineView: NSOutlineView, objectValueForTableColumn tableColumn: NSTableColumn?, byItem item: AnyObject?) -> AnyObject? {
return item
}
func outlineView(outlineView: NSOutlineView, acceptDrop info: NSDraggingInfo, item: AnyObject?, childIndex index: Int) -> Bool {
return true
}
func outlineView(outlineView: NSOutlineView, validateDrop info: NSDraggingInfo, proposedItem item: AnyObject?, proposedChildIndex index: Int) -> NSDragOperation {
return .Copy
}
我试过的:
继承 NSOutlineView 并覆盖 acceptsFirstResponder
覆盖背景样式
最佳答案
我已经找到了一种解决我的问题的方法,这是我所做的:
首先 - 重写以下属性的 NSOutlineView 子类:
override var acceptsFirstResponder: Bool{
get{
return false
}
}
其次,在我的 NSTableRowView 子类中,我添加了以下内容:
override var selectionHighlightStyle: NSTableViewSelectionHighlightStyle {
get{
return self.emphasized ? .None:.Regular
}
set{
}
}
我不能说这是一个好的解决方案甚至是一个完整的解决方案,但总比没有好。
有时我仍然得到灰色背景,所以我还在我的 NSTableCellView 子类中的 override var backgroundStyle : NSBackgroundStyle
属性的 setter 中添加了一个检查。
关于swift - NSTableRowView 拖放时的奇怪行为(在 View 层次结构中不断插入 NSView),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38146977/
如果这不是一个错误,那就是另一个错误。如果不是那样的话,那就是别的东西了。我觉得我的项目已经改变了很多,现在只是试图解决代码签名问题,结果一切都搞砸了。我严格按照说明进行操作,但出现错误,例如当前的“
我不确定是否有一些我不知道的内置变量或规则,或者 make 是否有问题,或者我只是疯了。 对于我的一个项目,我有一个如下的 makefile: CC=g++ CFLAGS=-O3 `libpng-co
我有大约 10 个 div,它们必须不断翻转,每个 div 延迟 3 秒 这个 codrops 链接的最后一个效果是我正在寻找的,但无需单击 div http://tympanus.net/Devel
我如何使用 jQuery 持续运行 PHP 脚本并每秒获取响应,以及将鼠标上的少量数据发送到同一脚本? 我真的必须添加一些随机扩展才能让这么简单的计时器工作吗? 最佳答案 To iterate is
JBoss 4.x EJB 3.0 我见过如下代码(大大简化): @Stateless @TransactionAttribute(TransactionAttributeType.NOT_SUPPO
使用 PHPStorm,我试图忽略每次尝试进行 git 提交时 pop 的 workspace.xml。 我的 .gitignore 看起来像: /.idea/ .idea/workspace.xml
我是一名优秀的程序员,十分优秀!