Я новичок в macos.Я занимаюсь разработкой приложения для макросов, в котором я хочу, чтобы у пользователя были боковые панели, и он может скрывать / показывать по своему желанию.
Я использовал split view
, чтобы разделить мой экран на 3 части.Правая и левая панели имеют пропорциональную ширину к виду (не разделенный вид).
То, что я хочу, - это когда пользователь скрывает левую панель, левая панель должна скрываться, а левая привязка окна должна перемещаться вправо, а правая привязка должна оставаться на своем месте.
Аналогично, если пользователь скрывает правую панель, правая панель должна быть скрыта.Правый якорь окна должен переместиться влево, а левый якорь должен остаться на своем месте.
следующая функция вызывается, когда пользователь хочет скрыть / показать левую панель.
guard let window = self.view.window else {
return
}
var frame = window.frame
if window.isZoomed {
if leftPane.contentView!.isHidden {
self.leftPane.isHidden = false
self.leftPane.contentView?.isHidden = false
} else {
self.leftPane.contentView?.isHidden = true
}
} else {
if leftPaneHidden {
self.leftPane.isHidden = false
frame = NSRect(x: (frame.origin.x - leftPane.frame.size.width), y: frame.origin.y, width: (frame.size.width + leftPane.frame.size.width), height: frame.size.height)
leftPaneHidden = false
} else {
self.leftPane.isHidden = true
frame = NSRect(x: (frame.origin.x + leftPane.frame.size.width), y: frame.origin.y, width: (frame.size.width - leftPane.frame.size.width), height: frame.size.height)
leftPaneHidden = true
}
self.view.window?.setFrame(frame, display: true, animate: true)
Я хочу, чтобы левая панель была скрыта, поскольку она работает в приложении для заметок.