- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 macOS Sierra 上的 Xcode 8(稳定版)中创建一个没有 Storyboard的 macOS 应用程序。但是,我的 AppDelegate 甚至没有启动。这是我的代码:
import Cocoa
@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {
var window: NSWindow!
override init() {
super.init()
print("Init")
}
func applicationDidFinishLaunching(_ aNotification: Notification) {
print("Finished launching")
// Create a window
window = NSWindow()
// Add the view controller
let viewController = ViewController()
window.contentView?.addSubview(viewController.view)
// Show the window
window.makeKeyAndOrderFront(nil)
}
}
init
或 applicationDidFinishLaunching(_ aNotification:Notification)
都没有被调用。任何帮助将不胜感激。
最佳答案
您需要在这里做一些事情
NSMainStoryboardFile
键/值NSApplication
子类并将其分配给主体类 (NSPrincipalClass)
键。 该名称必须完全符合您的模块名称。
delegate
属性。 确保保留对委托(delegate)对象的强引用。我刚刚在这里使用了 let
。
class GrookApplication: NSApplication {
let strongDelegate = AppDelegate()
override init() {
super.init()
self.delegate = strongDelegate
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
例如一个简单的委托(delegate)。
@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {
override init() {
super.init()
print("wassup")
//conceptual proof of life init override
//wait until applicationDidFinishLaunching , specially for UI
}
var window: NSWindow!
func applicationDidFinishLaunching(_ aNotification: Notification) {
print("yo! I'm alive")
window = NSWindow(contentRect: NSRect(x: 0, y: 0, width: 200, height: 200), styleMask: .titled, backing: .buffered, defer: false)
window.makeKeyAndOrderFront(nil)
}
}
编辑 2018 已验证 High Sierra
不要不要尝试在init
内进行窗口或 View Controller 初始化,这会导致双重应用程序初始化问题和崩溃。该应用程序现阶段尚未完成启动。等到 applicationDidFinishLaunching
触发任何重要操作。
关于swift - NSApplicationDelegate 在没有 Storyboard 的情况下无法工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50339775/
我有一个简单的单窗口应用程序,上面有一个文件的放置目标。这很好用。但是,我还希望当它通过命令行启动时,它只是处理这些文件,而不是显示一个窗口。 NSApplicationDelegate 中是否有委托
在ApplicationDelegate.h中,我有: @interface appDelegate : NSObject - (IBAction)showPage:(id)sender; 在 bu
我正在尝试在 macOS Sierra 上的 Xcode 8(稳定版)中创建一个没有 Storyboard的 macOS 应用程序。但是,我的 AppDelegate 甚至没有启动。这是我的代码: i
我正在尝试在我的 appDelegate 类上加载一个 ViewController。像这样: class AppDelegate: NSObject, NSApplicationDelegate {
我一直在尝试使用 Swift 3,但我无法开始。以下代码正在编译,但它不记录任何内容。看起来 applicationDidFinishLaunching 没有被调用。我是否遗漏了一些关键部分? Sou
我创建了简单的 Cocoa 应用程序 (Mac OS X 10.6) 并且出现了入口点: int main(int argc, char *argv[]) { return NSApplica
我正在尝试在 macOS Sierra 上的 Xcode 8(稳定版)中创建一个没有 Storyboard的 macOS 应用程序。但是,我的 AppDelegate 甚至没有启动。这是我的代码: i
我正在将 iOS 应用程序移植到 OS X。我正在考虑使用 Apple 示例代码“AnimatedTableView”作为起点,但惊讶地发现它没有 NSApplicationDelegate。在 iO
main.m #import int main(int argc, char *argv[]) { return NSApplicationMain(argc, (const char *
我的 Swift 3、Xcode 8.2 MacOS 应用程序通过 Web 服务调用加载多个表。由于这些表由我的七个 View Controller 中的一个或多个使用,因此我将它们放置在 AppDe
我需要访问应用程序委托(delegate)中的一些值,以使用 Sparkle 修改(和测试)更新过程。所以问题是,如何在我的 UI 测试中从 XCUIApplication 访问 NSApplicat
我正在尝试使用 objc_getProtocol() 函数来获取对表示 NSApplicationDelegate 协议(protocol)的结构的引用: Protocol *protocol = o
有人可以给我举一个这个工作的例子吗?我只想通过 AppleScript 设置属性值。我已经浏览了所有可编写脚本的示例,它们的设置不同。
我有一个用 Xcode 编写的非常基本的 Cocoa 应用程序,我正在尝试使用简单的 AppleScript 脚本访问我的应用程序委托(delegate)的属性: tell application "
我正在尝试编写一个简单的 Objective-C 应用程序:我只想要一个能够在状态栏中显示单词并允许通过 AppleScript 更新该单词的应用程序。说实话,我对 AppleScript 知之甚少,
我想打开一个文件,将其拖放到应用程序图标上。当我这样做时,我的应用程序被打开,因此文件扩展名定义明确并且与我的应用程序相关。但是 application:openFile: 函数永远不会被调用。所以我
嘿!我将我的 Mac 应用程序设置为在浏览器(如 Safari)中调用 myApp://协议(protocol)启动,但当应用程序被该协议(protocol)调用时,我似乎无法执行操作。委托(dele
我有一个 Mac OS X 应用程序,它实现了 -(void)application openFiles: 方法来响应应用程序图标上的拖动文件。 我在目标信息设置的文档类型部分有一个允许的文件类型列表
我是一名优秀的程序员,十分优秀!