如何在Mac OSX中获取和/或覆盖窗口的最小尺寸

5

我希望可以通过AppleScript来调整我机器上任意窗口的大小,使用图形化用户界面脚本实现。 该脚本看起来类似于以下内容:

tell application "System Events"
  set appProcess to the first process whose name is "Finder"
  set appWindow to the front window of appProcess
  set position of appWindow to {100, 100}
  set size of appWindow to {10, 10}
end tell

即使我将宽度和高度设置为10像素,Finder也会调整大小至少为344像素的宽度和236像素的高度。我测试了其他应用程序,所有应用程序都有最小宽度,这取决于应用程序。例如,TextMate窗口的大小至少为213像素*129像素。
由于我有时需要将窗口调整为较小的宽度和高度,是否有一种方法可以覆盖此最小大小,即使用我的值,即使它们“太小”?
如果没有,我需要知道最小尺寸,以便我知道窗口将比预期更大。我该如何完成?
具体问题如下:我正在编写一个窗口平铺管理器,因此需要负责窗口的大小。最小尺寸会产生两个问题:
  1. 我的瓷砖可能对某些应用程序的窗口太小,因此窗口可能会重叠在其他瓷砖上。
  2. 窗口可能比预期的更宽/更高,因此越过了屏幕的边界。(例如,窗口位于我的屏幕右下角附近 - 我根据角落的大小设置了宽度和高度,但由于它有一个最小大小,所以不适合。)
感谢任何建议。 :) 祝好 弗洛里安

1
你可以编辑nib文件并为窗口设置不同的最小尺寸! - user557219
3
应用程序设置窗口的最小大小是为了避免自动调整大小的问题,这可能会导致某些视图消失并且在窗口大小扩大时不会显示。据我所知,似乎无法通过AppleScript查询或设置最小大小。 - user557219
似乎你是对的,因为平铺窗口管理器 Divvy 也不能设置更小的尺寸。很遗憾我无法查询最小尺寸,所以我需要一个解决方法。唯一想到的解决方法是设置我想要的尺寸,获取实际尺寸,如果实际尺寸与我设置/需求的尺寸不同,则移动窗口。 - Florian Pilz
1
您可以使用Carbon应用程序(例如iTunes)绕过最小尺寸限制。但是,仅使用AS无法通常绕过它。而且,像Divvy这样的应用程序并不是平铺窗口管理器。 - Lri
@Bavarious 如果您将您的评论转化为答案,我会很乐意接受它。 :) @Lri 这是我所知道的最好的描述。我知道,xMonad是一个真正的窗口平铺管理器,但其他选项呢?(Divvy,OptimalLayout,Arrange,...) - Florian Pilz
1个回答

0

正如评论者所指出的那样:不可能将窗口大小调整到低于开发期间设置的最小大小(例如在Interface Builder中)。然而,最小尺寸是有原因的:防止自动调整大小问题,例如按钮由于视图尺寸过小而重叠或消失。

感谢Bavarious的回答。

PS:Lri指出,可能可以使用应用程序的API绕过最小大小限制,例如使用Carbon API调整iTunes的大小或使用自定义构建的AppleScript-API。谢谢Lri!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接