Swift 如何将NSPanel定位在应用程序窗口的中心
我对Macos开发非常陌生,网上几乎没有任何可用信息,但我似乎不知道如何将我的NSpanel定位在应用程序窗口的顶部中心。它在我整个屏幕的中央打开Swift 如何将NSPanel定位在应用程序窗口的中心,swift,macos,appkit,Swift,Macos,Appkit,我对Macos开发非常陌生,网上几乎没有任何可用信息,但我似乎不知道如何将我的NSpanel定位在应用程序窗口的顶部中心。它在我整个屏幕的中央打开 let dialog = NSOpenPanel() dialog.title = "Choose a file!" dialog.showsResizeIndicator = true; dialog.showsHiddenFiles = false;
let dialog = NSOpenPanel()
dialog.title = "Choose a file!"
dialog.showsResizeIndicator = true;
dialog.showsHiddenFiles = false;
dialog.allowsMultipleSelection = false;
dialog.canChooseDirectories = false;
dialog.allowedFileTypes = ["py"];
dialog.isFloatingPanel = false;
这是我的当前代码您可以执行以下操作
let dialog = NSOpenPanel()
dialog.title = "Choose a file!"
dialog.showsResizeIndicator = true;
dialog.showsHiddenFiles = false;
dialog.allowsMultipleSelection = false;
dialog.canChooseDirectories = false;
dialog.allowedFileTypes = ["py"];
// here `window` is your document or main window (eg: `NSApp.mainWindow!`, etc.)
dialog.beginSheetModal(for: window) { result in
if result == .OK {
// do read a file
}
}
您可以执行以下操作
let dialog = NSOpenPanel()
dialog.title = "Choose a file!"
dialog.showsResizeIndicator = true;
dialog.showsHiddenFiles = false;
dialog.allowsMultipleSelection = false;
dialog.canChooseDirectories = false;
dialog.allowedFileTypes = ["py"];
// here `window` is your document or main window (eg: `NSApp.mainWindow!`, etc.)
dialog.beginSheetModal(for: window) { result in
if result == .OK {
// do read a file
}
}
如果将NSOpenPanel子类化并重写“中心”方法,则可以将面板放置在特定坐标上 将te面板放置在屏幕左上方:
class MyOpenPanel: NSOpenPanel {
override func center() {
let rect = self.screen?.frame
self.setFrameOrigin(NSPoint(x: 0, y: rect!.height - self.frame.height))
}
}如果将NSOpenPanel子类化并覆盖“中心”方法,则可以将面板放置在特定坐标上 将te面板放置在屏幕左上方:
class MyOpenPanel: NSOpenPanel {
override func center() {
let rect = self.screen?.frame
self.setFrameOrigin(NSPoint(x: 0, y: rect!.height - self.frame.height))
}
}