我试图找出如何检测双击NSSplitView分隔符的方法。在我看来,分隔线既不暴露于NSSplitViewDelegate,也不暴露于NSSplitViewController。
到目前为止,我发现分隔符是NSSplitDividerView的一个实例,它是一个私有类,因此无法扩展或子类化。
您能让我回到正确的调查轨道上吗?
谢谢。
答案 0 :(得分:1)
可能的解决方案是子类NSSplitView
并覆盖mouseDown(with:)
。检查事件的位置是否在子视图之间。
override func mouseDown(with event: NSEvent) {
if event.clickCount == 2 {
let location = self.convert(event.locationInWindow, from: nil)
if location.x > NSMaxX(self.arrangedSubviews[0].frame) && location.x < NSMinX(self.arrangedSubviews[1].frame) {
Swift.print("doubleclick")
return
}
}
super.mouseDown(with: event)
}
答案 1 :(得分:0)
我很确定您可以在拆分视图的委托对象中实现file_name = "index.html"
endpoint = 'https://s3-api.us-geo.objectstorage.softlayer.net'
bucket_name = "cmadden-cc-tutorial"
import boto3
resource = boto3.resource(
's3',
aws_access_key_id = credentials["cos_hmac_keys"]['access_key_id'],
aws_secret_access_key = credentials["cos_hmac_keys"]["secret_access_key"],
endpoint_url = endpoint,
)
import os
directory = os.getcwd()
html_path = directory + "/" + file_name
f = open(html_path, "r")
resource.Bucket(name=bucket_name).put_object(Key= file_name, Body=f.read())
方法,返回optional func splitView(_ splitView: NSSplitView, shouldCollapseSubview subview: NSView, forDoubleClickOnDividerAt dividerIndex: Int) -> Bool
,然后执行您想要的任何自定义操作。