objective-c - 允许单击并拖动 View 以拖动窗口本身?

标签 objective-c macos cocoa nswindow appkit

我使用的是带纹理的窗口,其顶部有一个标签栏,就在标题栏下方。

我用过 -setContentBorderThickness:forEdge:在窗口上使渐变看起来正确,并确保纸张从正确的位置滑出。

然而,不起作用的是四处拖动窗口。如果我单击并拖动实际上是标题栏的区域,它会起作用,但由于标题栏渐变溢出到(可能/通常是空的)选项卡栏中,真的很容易点击得太低而且感觉当您尝试拖动并发现窗口没有移动时,这真的很令人沮丧。

我注意到 NSToolbar 占据了标题栏下方大致相同的空间,当光标悬停在窗口上时,它允许拖动窗口。如何实现这一点?

谢谢。

Tab Bar

最佳答案

我尝试了 mouseDownCanMoveWindow 解决方案 ( https://stackoverflow.com/a/4564146/901641 ),但它对我不起作用。我摆脱了那个方法,而是将其添加到我的窗口子类中:

- (BOOL)isMovableByWindowBackground {
    return YES;
}

这就像一个魅力。

关于objective-c - 允许单击并拖动 View 以拖动窗口本身?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4563893/

相关文章:

用于显示目录列表的 Cocoa Control/View

objective-c - 从沙箱中的帮助程序读取 NSUserDefaults

cocoa - NSScrollView 是如何工作的?

objective-c - 获取实体类型 3 的共享日历邀请时出错,Xcode 6.1.1。 EKCalender、EKSource、EKEventstore 和 Objective C

json - 错误 : Error Domain=HTTPTask Code=404 "page not found" UserInfo=0x608000228720 {NSLocalizedDescription=page not found}

java - 使用 [Caps-Lock] 区分两个 USB 连接的键盘

c# - 在 Mac 上使用 Jetbrains Rider 开发 WPF 应用程序

ios - 检测 MKPolygon 中的点与 iOS7 (CGPathContainsPoint) 冲突

objective-c - 在 Objective-C 协议(protocol)中定义字符串常量的最佳方式是什么?

objective-c - 如何设置 UITapGestureRecognizer 的超时阈值?