我正在将MacOS应用程序从Swift 2转换为Swift5。我可以运行该应用程序,但是滚动条不再可见(或更新)。应当存在滚动条的区域,该区域似乎是为滚动条保留的,但没有滚动条本身。
如何更新documentView的框架?
在旧版本中,通过将新的框架大小分配给documentView.frame属性来直接更新文档的框架。这也会更新滚动条(至少我相信如此)
我检查了滚动视图的设置是否正确,即contentView的设置是否正确。 showScroller布尔已设置。 documentView的大小已正确更新。
DocumentView是NSView的子类,使用IB中的Edit命令将其嵌入到NSScrollView中。滚动条是通过此过程添加的。
文档视图的大小在draw:rect函数中设置。
我对如何进行不知所措,欢迎任何提示。
编辑:我创建了一个包含以下代码的示例:
class DocControl: NSViewController {
@IBOutlet weak var scrollview: NSScrollView!
override func viewDidLoad() {
print("viewDidLoad")
var newFrame = scrollview.documentView!.frame
print("old width = \(newFrame.size.width)")
newFrame.size.width = 1000
newFrame.size.height = 1000
scrollview.documentView!.frame = newFrame
print("new width = \(newFrame.size.width)")
}
}
当然,它是用IB接线的。它生成以下输出:
viewDidLoad
old width = 438.0
new width = 1000.0
但没有滚动条出现(在本示例中,我将autohidescrollbar设置为'true')