gpt4 book ai didi

objective-c - 有一排大小相同的自定义 NSView

转载 作者:可可西里 更新时间:2023-11-01 02:23:46 25 4
gpt4 key购买 nike

我正在开发一个自定义 NSView,我想要一个简单的应用程序来测试它在初始化和释放时的行为。为此,我想创建一个带有添加和删除按钮的窗口,该按钮将添加我的自定义 View ,一个相邻,大小相同。这比我更难。我以前有过 Qt 和 Gtk+ 的经验,其中这是微不足道的(因为这就是在那里构建 UI 的方式)。

我尝试创建一个 NSBox 并将它们添加到其中,但这意味着我必须使用自动布局并以编程方式创建像“[view1]-[view2]-[view3]”这样的字符串,这听起来很痛苦,即使那样我不确定这是否足够。

我也尝试过使用 NSCollectienView,但我不知道如何向它添加任意 NSView。

最佳答案

看看 NSStackView。它是 Interface Builder 对象库中的一个相对较新的类(右二)。

enter image description here

您可以垂直或水平堆叠 View ,Cocoa 会为您处理所有自动布局。在下面的代码片段中,我将 30 个文本字段堆叠在一起:

import Cocoa

@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {

@IBOutlet weak var window: NSWindow!
@IBOutlet weak var stackView: NSStackView!

func applicationDidFinishLaunching(aNotification: NSNotification) {
for each in 0..<30 {
var f = NSTextField()
f.translatesAutoresizingMaskIntoConstraints = false
stackView.addView(f, inGravity:.Top)
}
}
}

如果你想要比上面更复杂的东西,Apple 提供了一个名为 InfoBarStackView 的演示项目。让你启动并运行。无论它是否适合您的特定要求,对于您描述的那种事情,这种方法肯定比 NSBoxNSCollectionView 更好。

关于objective-c - 有一排大小相同的自定义 NSView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29047501/

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