gpt4 book ai didi

macos - 调用 NSTableRowView 布局后布局仍需要更新

转载 作者:搜寻专家 更新时间:2023-10-31 08:33:55 26 4
gpt4 key购买 nike

我的应用程序中有两个 NSTableView,用户可以将项目从表 A 拖放到表 B。将项目拖动到表 B 时,Xcode 会给我以下布局警告消息:

Layout still needs update after calling -[NSTableRowView layout]. NSTableRowView or one of its superclasses may have overridden -layout without calling super. Or, something may have dirtied layout in the middle of updating it. Both are programming errors in Cocoa Autolayout. The former is pretty likely to arise if some pre-Cocoa Autolayout class had a method called layout, but it should be fixed.

只有当项目被拖到表 B 时才会发生这种情况。否则我在 IB 中没有自动布局警告,布局中的所有内容看起来都设置正确。有人知道上面的消息想告诉我什么吗?这些表使用标准的 Cocoa 类(不是子类)。

最佳答案

我通过不允许删除操作类型来修复它(或者更确切地说是解决它),NSTableViewDropOperation.Above 除外。在用户将它们放到其他行之前,而不仅仅是行之间。但我希望只允许将它们放在行之间,所以这对我来说很好。这是修复它的代码:

func tableView(aTableView:NSTableView, validateDrop info:NSDraggingInfo, proposedRow row:Int, proposedDropOperation operation:NSTableViewDropOperation) -> NSDragOperation
{
if (operation == .Above) { return .Move; }
return .None;
}

关于macos - 调用 NSTableRowView 布局后布局仍需要更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30621573/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com