首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

没有Interface Builder的Cocoa,初始化app控制器的实例?

在Cocoa框架中,没有Interface Builder的情况下,可以通过编程方式初始化App控制器的实例。以下是一个简单的示例:

  1. 首先,创建一个新的Cocoa应用程序项目。
  2. 打开AppDelegate.swift文件,删除文件中的所有代码。
  3. AppDelegate.swift文件中,添加以下代码:
代码语言:swift
复制
import Cocoa

@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {
    var window: NSWindow!

    func applicationDidFinishLaunching(_ aNotification: Notification) {
        // 创建一个新的窗口
        let window = NSWindow(contentRect: NSMakeRect(0, 0, 480, 300),
                              styleMask: [.titled, .closable, .miniaturizable, .resizable],
                              backing: .buffered,
                              defer: false)
        window.center()
        window.title = "My App"
        window.makeKeyAndOrderFront(nil)
        self.window = window
    }

    func applicationWillTerminate(_ aNotification: Notification) {
        // 在这里执行任何需要在应用程序退出前完成的操作
    }
}

在这个示例中,我们创建了一个新的NSWindow实例,并设置了一些基本属性,如大小、样式和标题。然后,我们将窗口设置为主窗口,并使其显示在屏幕上。

这个示例演示了如何在没有Interface Builder的情况下初始化App控制器的实例。当然,您可以根据自己的需求进行更多的自定义和扩展。

相关搜索:如何在没有Interface Builder的情况下创建Cocoa接口?有没有人看过为Interface Builder构建Cocoa Touch插件的教程Cocoa - 调试XCode和Interface Builder之间绑定问题的建议技术"控制器密钥"在Interface Builder> Inspector> Bindings中的含义是什么?在Cocoa/Interface Builder中,如何在按钮单击后清除文本字段中的文本为什么在控制器调用的时候app没有定义?xlwings.App()创建一个没有加载插件的Excel实例在show segue之后,我的视图控制器没有被取消初始化app.js中导入的模块函数没有访问类实例化或app.js变量的权限。Javascript节点有没有办法在我的ec2实例初始化后启动进程时公开该实例上的端口?有没有一种干净的方法可以在嵌套的控制器中找到对象的多态实例?创建实例控制器System.MissingMethodException:“没有为这个对象定义无参数的构造函数。”有没有办法在Google Cloud Platform (App Engine)中设置基本伸缩的最小实例数?有没有一种在控制器中初始化codeigniter4模型变量的方法传递给App\Http\Controllers\Auth\LoginController::attemptLogin()的参数%1必须是应用程序\Http\控制器\Auth\Request的实例为什么我的'app‘模块在用angular-route路由并实现RequireJS后没有在控制器中定义?.net核心5.0。在控制器中实例化类时:没有给定与所需形参“configuration”相对应的参数。从情节提要"Main“中实例化了带有标识符"UIViewController-ZWG-5q-24I”的视图控制器,但没有获得UITableView。
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

XcodeXcode 9 全新功能您会喜欢工具。内建 Interface BuilderXcode IDE

无间断地构建和测试您 app,从来没有像此刻一样轻松简单过。 50X倍 速 搜 索 全方位提速 作为构建过程一部分,全新索引引擎帮助 Xcode 自动理解您代码。...image Interface Builder Interface Builder 设计画布完全集成在 Xcode IDE 中,可以轻松呈现完整用户界面的原型,而无需编写任何代码。...image 内建 Interface Builder ---- 借助 Xcode 内置 Interface Builder 编辑器,您无需编写任何代码,即可轻松设计完整用户界面。...CocoaCocoa Touch 使用“模型-视图-控制器”模式构建,因此可以轻松地独立设计界面,不受实现方式限制。...Interface Builder 可自动为您创建所有限制条件,确保提供一套兼容规则。

8.3K30
  • iOS 9 Storyboard 教程(二上)介绍Segue静态单元格(static cell)

    在第一篇文章第一篇文章中,你已经学到了Interface Builder基本用法来创建和连线多个控制器,以及使用在storyboard中可以通过直接创建自定义tableViewCell....当用户点击这个按钮时候,你想要这个app弹出一个新模态控制器,可以输入一个新玩家详细信息.....每一个静态单元格都只有一个实例,所以它完全是可以接受在视图控制器里通过连线连接它们子视图....还有一件关于静态单元格事情:它们只工作在UITableViewController里.即使Interface Builder会让你添加它们到一个内置UIViewControllerTable View...–很多都适合可见frame–然后你可以用鼠标或触摸板滑动手势(2指点击)滑动它们在Interface Builder里.这也许不会立即就可以看见,但是它确实起作用. ---- 你不能避免写代码,甚至是使用静态单元格

    3.3K10

    iOS学习——iOS 整体框架及类继承框架图

    ,解释一下,官方文档中将OS体系分为四层,如下图所示,没有Cocoa Touch Layer和Application Layer,取而代之Cocoa (Application) Layer。...我们再细看官网Cocoa (Application) Layer官方解释如下,说是该层是为创建App提供了用户界面基础,响应用户事件,并且可以管理App行为。...这其实就是Cocoa Touch Layer(触摸层,UIKit)作用,只是官网省略了Application Layer(应用层),因为这一层主要就是app了,主要由开发人员完成。...The Cocoa (Application) layer includes technologies for building an app’s user interface, for responding...前者使对象可以对其实例变量进行编码,后者则使对象可以根据解码过实例变量对自身进行初始化

    3.5K70

    Mac开发之 Cocoa 绑定 入门

    -视图-控制器完全没有必要,特别是当控制器仅仅是在模型与视图之间传递信息时(比如一个UILabel需要显示文本来自数据模型内容),为了解决这种情况,苹果公司在OSX中引入了Cocoa绑定....score属性,初始值为0 添加Person类,并初始化score属性为0 (3)选中Main.storyboard,添加界面组件 拖入一个Label,放在视图右侧,然后再拖入一个slider,把它放在...添加代码 当sonscore值发生变化时,Label和Slider会同时更新它们显示.我们没有在视图和数据直接添加任何数据传递代码,就完成了它们之间相互联系,由此可见,cocoa绑定为我们节省了代码量...,简化了开发步骤,同时也减少了Bug可能. 3.2 绑定到控制器 在刚刚例子中,我们将视图直接绑定在模型对象属性上,跳过了控制器,这种情况对应简单使用没有问题,但绑定还有更多使用方式,也许你在签名例子中已经注意到了...通过cocoa 绑定,我们没有写一行代码就实现了记录用户设置功能~ cocoa中还为我们提供了其他控制器对象来处理应用程序中数据访问,比如NSArrayController,可以处理一组数据集合,

    1.9K20

    PHP 语言官方团队推荐依赖注入工具

    $container = $builder->build(); 3.创建对象 如果没有PHP-DI,我们将不得不像这样手动“连接”依赖项: $mailer = new Mailer(); $userManager...= new Mailer; $user = new UserController($mailer); 当使用php-di后,开发者无需手动实例控制器Mailer,webman会自动帮你完成。...如果在实例化Mailer过程中有其它类依赖,webman也会自动实例化并注入。开发者不需要任何初始化工作。...注意必须是由框架或者php-di创建实例才能完成依赖自动注入,手动new实例无法完成依赖自动注入,如需注入,需要使用support\Container接口替换new语句,例如: use app\service...app\service\Mailer实例时将自动使用这个配置中创建app\service\Mailer实例

    20810

    iOS开发入门笔记

    苹果公司还提供了一个软件,叫Interface Builder,简称IB,用于可视化界面制作,就像用Dreamweaver做网页,或者像Visual Basic做桌面软件一样。...NSLog(@"Hello, World"); } @end 使用 [MyClass sayHello]; 实例方法 实例方法就是Java、PHP里普通方法,必须实例化才能调。...Java里没有类似的实现,除了Collection里会有一些方法带有optional注释,但Collection是个特例。 协议实现 一个类实现某些协议是写在Interface定义里面的。...Touch Cocoa是Mac OS App开发框架,Cocoa Touch是iOS开发用框架,Cocoa Touch和Cocoa大部分是一样,只是Cocoa Touch多了一些移动设备特有的东西...Cocoa中多任务、多窗口特性,在Cocoa Touch中也是没有的(或者跟Cocoa不完全一样)。

    3.9K60

    Objective-C三种定时器CADisplayLink NSTimer GCD使用

    OC中三种定时器:CADisplayLink、NSTimer、GCD 我们先来看看CADiskplayLink, 点进头文件里面看看, 用注释来说明下 @interface CADisplayLink...因为当滑动时, RunLoop会进入到UITrackingRunLoopMode 所以当我们发现计时器没有运行时, 可以检查下是否有加入到正确mode中 那我们来说一下runloop几种mode:...Event tracking模式 定义:UITrackingRunLoopMode(iOS) NSEventTrackingRunLoopMode(cocoa) 描述:在拖动loop或其他user interface...isValid) BOOL valid; //只读属性, 获取当前timer是否有效 @property (nullable, readonly, retain) id userInfo; //只读属性, 初始化时传入用户参数...关于invalid方法 我们知道NSTimer使用时候如果不注意的话,是会造成内存泄漏。原因是我们生成实例时候,会对控制器retain一下。

    2.3K31

    【iOS 开发】iOS 开发 简介 (IOS项目文件 | MVC 模式 | 事件响应机制 | Storyboard 控制界面 | 代码控制界面 | Retina 屏幕图片适配)

    , 其中 HelloWorld.app 就是安装文件; -- 红色显示 : 由于还没有编译程序, 该文件显示红色, 这说明该文件目前不存在; (4) 目录对应 Xcode 与 文件系统 :  -- Xcode...Builder 把窗口, 菜单栏 以及 各种 UI 组件都冻结在 nib 文件中, 使用 nib 界面设计文件, 这些 UI 控件对象已经被创建好, app 运行时, 只需要苏醒这些 UI 控件 即可...- C 类, 这些类用于保存 处理 数据; -- View 视图 : 使用 Interface Builder 创建视图组件, 如 xib, storyboard 后缀界面设计文件; -- Controller..., 箭头指向需要加载 视图控制器; -- 移动箭头 : 视图中只有一个 UI 控制器, 移动箭头始终指向唯一 一个 UI 控制器; -- 好处 : 可以直观地看到多个视图之间协作关系, 可以在 Interface...Builder 中配置视图之间切换关系; -- 图示 :  (3) 工具图标 界面设计文件 工具图标 :  -- 缩小 : 多个视图控制器在同一个窗口, 缩小界面可以同时查看所有的 视图控制器;

    4.9K30

    关于Objective C编码规范,这些你一定要会

    developer.apple.com/legacy/libr… Coding Guidelines for Cocoa : developer.apple.com/library/mac… iOS App...但有一个特例:在初始化方法里,实例变量(例如,_variableName)应该直接被使用来避免getters/setters潜在副作用。 局部变量不应该包含下划线。...通过使用’back’属性(_variable,变量名前面有下划线)直接访问实例变量应该尽量避免,除了在初始化方法(init, initWithCoder:, 等…),dealloc 方法和自定义setters...属性特性顺序应该是storage、atomicity,与在Interface Builder连接UI元素时自动生成代码一致。...即使你声明一个NSString属性,有人可能传入一个NSMutableString实例,然后在你没有注意情况下修改它。

    43730

    macOS AppKit 事件响应简介

    一个对象如果可以处理事件,那么这个对象必须继承自NSResponder这个类.在AppKit中,NSApplication,NSWindow,NSView都继承自NSResponder 一个NSResponder实例对象有三个组件...shareApplication]; [NSBundl loadNibNamed:"main" owner: NSApp]; [NSApp run]; } NSApplication 对象通过调用自身类方法初始化显示数据环境...(根据这个方法返回值来确认:YES代表响应,NO则是不响应默认为NO),如果视图(NSView)体系中没有任何对象响应,那么NSApplication会将这个快捷键事件发送给menu bar(菜单栏)....在Cocoa 一些类中,比如 NSButton, NSMenu, NSMatrix, 和 NSSavePanel 都提供了默认响应处理.....这些交互控件顺序你可以通过(Xcode中)Interface Builder来构建也可以通过代码来控制(使用NSView setNextKeyView: 和 nextKeyView 方法) 关于控制键更详细内容

    2.7K60

    Swift 项目 - Xib | StoryBoard 多人协作技巧

    一个占位容器视图指向子控制器Embed Segue 按住Control键连线到想要包含控制器,占位视图实例==子控制器view(子控制器根视图) 选择Embed连线方式后,子控制器 尺寸变化成跟占位视图一样尺寸...如果需要在初始化时候拿到主ViewController实例,则应该在主ViewController``viewDidLoad方法中,调用ChildViewController特定方法,把 self...in Interface Builder file. // Swift Unknown class HomeController in Interface Builder file. // Objective...C 通过上面的错误提示Interface Builder file就是指通过Storyboard或者Xib构建视图或者控制器,但找不到名为HomeController控制器,看到这里就应该明白,我们某个...我想,这种言论可能是因为不太熟悉Interface Builder功能和操作造成,仅仅实验了几次不得其门而入就放弃了。

    2.1K20

    ios 笔试题3

    在定义该 const 变量时,通常需要对它进行初始化,因为以后就没有机会再去改变它了; (2)对指针来说,可以指定指针本身为 const,也可以指定指针所指数据为 const,或二者同时指定为 const...设计模式考虑三种对 象:模型对象、视图对象、和控制器对象。...它们不但可以将分配和初始化合在一起,还可以 为初始化过程提供对象分配信息。 类工厂方法 另一个目的是使类(比如NSWorkspace)提供单件实例。...虽 然init...方法可以确认一个类在每次程序运行过程只存在一个实例,但它需要首先分配一个“生实例,然后还必须释放该实例。工厂 方法则可以避免为可能没有对象盲目分配内存。...当向这些类请求实例时候,它们会向您传递单一实例一个引用,如果该实例还不存在,则首先进行实例分配 和初始化。 单件对象充当控制中心角色,负责指引或协调类各种服务。

    72910

    ASP.NET Core 依赖注入

    1.1依赖 当一个类需要另一个类协作来完成工作时候就产生了依赖。比如我们在AccountController这个控制器需要完成和用户相关注册、登录 等事情。...我们上面看到了,.NET Core DI 为我们提供实例生命周其包括三种: Transient: 每一次GetService都会创建一个新实例 Scoped:  在同一个Scope内只初始化一个实例...: IOperation{} 我们 Operation实现很简单,可以在构造函数中传入一个Guid进行赋值,如果没有的话则自已New一个 Guid。...即能减少实例初始化消耗,还能实现跨Service事务功能。...这一步是在Mvc初始化控制器时候完成,我们后面再介绍到Mvc时候会往细里讲。 3.3 View中使用 在View中需要用@inject 再声明一下,起一个别名。

    1.8K91

    委托与回调函数

    这里其实使用了一个同样稀疏平常却广为流传设计模式——delegate模式。Delegate模式是在Cocoa开发中随处可见一种设计模式,几乎贯穿于整个Cocoa框架。...ScrollViewCtrl是一个控制器,它confirm to(遵守,大致就是其他语言中实现一个接口意思)UIScrollViewDelegate这个protocol(协议)。...虽然Swift委托实现跟协议息息相关,但我在这里不准备过多讨论协议细节内容,只要知道它类似于其他语言interface(接口)就可以了,只是Swift中protocol不仅可以被class遵守,...接着往下说,一开始我初始化了一个UIScrollView,并把它delegate属性设置成self(即ScrollViewCtrl一个实例)。...这其实就是一个完整委托模式了,当然在真实情况下,一般doSomethingWithAdditionalInfo会在某个特定时机运行delegate.delegateMethod这方法,譬如它可能会是个发送异步网络请求取数据方法

    1.7K30

    Cocoa编程学习笔记之MVC

    Cocoa 使用了一种修改版本MVC模式来处理GUI显示。MVC模式(自1979年以来)已经出现很长时间了,它皆在分离显示用户界面所需大量任务,并处理用户交互。...控制器——控制器是模型和视图间粘合剂,负责控制整个应用流程。控制器目的就是获取模型中数据,告知视图来显示。控制器还侦听着视图事件,在用户选中一个任务来删除时候,控制着任务从模型中删除。...然而,在Cocoa(及Cocoa Touch)中,还是或多或少有所不同,苹果用MVC来代表Views(视图)、View Controller(视图控制器)和Models(模型);但是在不同控件中,它们却不是完全一致...在Objective-C/Cocoa世界里,我们建立controller通常是指应用程序(Application)委托(Delegate),或者可以简单称做app delegate。...当你在Objective-C里面建立一个app delegate时候,这个delegate可以做为你所有model和viewcontroller,或者你也可以为不同model和view分别创建controller

    89870
    领券