gpt4 book ai didi

macos - 使用 Swift 在 OS X 应用程序中打开一个新窗口

转载 作者:可可西里 更新时间:2023-11-01 02:19:18 24 4
gpt4 key购买 nike

我是 OS X 应用程序开发的新手,在从状态栏菜单打开新窗口时遇到了一些问题。

我阅读了几个教程并尝试遵循它们。由于它们不完全适合我的项目,我做了一些修改,但似乎不起作用。

为了设计一些 UI,我创建了 NSWindowController 的一个新子类。但是当我点击菜单时,没有窗口出现。

//AppDelegate.Swift

import Cocoa

@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {

let statusItem = NSStatusBar.systemStatusBar().statusItemWithLength(-2)

@IBOutlet weak var window: NSWindow!

func applicationDidFinishLaunching(aNotification: NSNotification) {
// Insert code here to initialize your application
if let button = statusItem.button {
button.image = NSImage(named: "StatusBarButtonImage")
}

let menu = NSMenu()

menu.addItem(NSMenuItem(title: "About MyProgram", action: Selector("getAbout:"),keyEquivalent: ""))

statusItem.menu = menu

}

// open "About MyProgram" window
func getAbout(sender: AnyObject) {
let controller = AboutWindowController()
controller.showWindow(self)
}

func applicationWillTerminate(aNotification: NSNotification) {
// Insert code here to tear down your application
}


}

我不知道在新类中写什么,所以我把它保留为默认创建的。

//AboutWindowController.swift
import Cocoa

class AboutWindowController: NSWindowController {

override func windowDidLoad() {
super.windowDidLoad()

// Implement this method to handle any initialization after your window controller's window has been loaded from its nib file.
}

}

感谢任何帮助!谢谢!

最佳答案

screen-capture

像这样工作,像这样编码

#import "AppDelegate.h"

@interface AppDelegate ()

@end

@implementation AppDelegate {
NSWindowController* wc;
}

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
// Insert code here to initialize your application
NSStoryboard* storyboard = [NSStoryboard storyboardWithName:@"Main"
bundle:nil];
wc = [storyboard instantiateControllerWithIdentifier:@"new_window"];
[wc showWindow:self];
}

- (void)applicationWillTerminate:(NSNotification *)aNotification {
// Insert code here to tear down your application
}

@end

我认为您可以将 Objective-C 语法更改为 Swift 语法。

关于macos - 使用 Swift 在 OS X 应用程序中打开一个新窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32193041/

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