【问题标题】:How to snap 2 windows side-by-side(split view) programmatically如何以编程方式并排对齐 2 个窗口(拆分视图)
【发布时间】:2017-10-09 08:54:31
【问题描述】:

NSWorkspace 对此没有任何支持。我尝试了Accessibility,但仍然找不到任何有用的东西。

我在考虑AppleScript,但也找不到任何有用的东西。

我正是需要这种效果Use two Mac apps side by side in Split View

您知道我该如何实现吗?

【问题讨论】:

  • 这里是一个实现这一目标的项目的 GitHub 存储库,查看其代码:github.com/fikovnik/ShiftIt
  • @the4kman 谢谢,但我正在寻找等同于this的东西
  • @Raymond 希望我的回答对你有所帮助

标签: swift macos cocoa


【解决方案1】:

我设法从WWDC 2015 找到了一个非常有用的演示文稿here(该链接会将演示文稿下载为 PDF)

参见 Metrics 和 NSSplitView 部分 - 第二半(幻灯片 130 左右)

您会发现一些与NSSplitViewItem 类有关的有用代码。这会做(我认为)你想做的事情。我看了看,除了这些之外找不到很多例子。

看起来NSSplitView使用多个NSView对象以“全屏顺序”排列它们。演示文稿的前几张幻灯片展示了如何让应用具备全屏功能。

示例:

// Add View
class NSView {
     var subviews: [NSView]
     func addSubview(NSView)
     func addSubview(NSView, positioned: NSWindowOrderingMode, relativeTo: NSView?)
     func removeFromSuperview()
}
// Create SplitView
class NSSplitView {
    var arrangedSubviews: [NSView]
    func addArrangedSubview(NSView)
    func insertArrangedSubview(NSView, atIndex: NSInteger)
    func removeArrangedSubview(NSView)
    var arrangesAllSubviews: Bool
}

【讨论】:

    【解决方案2】:

    您要求提供建议,这是我的建议,请尝试确定一个值 每个窗口在加载时的 x% 宽度、x% 高度和垂直对齐 =(左或右)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-16
      • 2016-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多