首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏macOS 开发学习

    macOS AppKit 的事件响应简介

    所有的鼠标和键盘事件都会被NSApplication 派发到与之关联的某个具体的NSWindow 对象中,但有一种情况例外:如果按下的是Command(⌘)键,那么所有的NSWindow对象都有机会响应这个事件 一个窗口对象(NSWindow)处理窗口级别的事件(window-level events)以及将其他事件传递给窗口中的视图对象,同时一个NSWindow还允许通过它的delegate实现自定义窗口的行为方式 大部分的情况下,NSApp都会将事件派发给用户操作的那个窗口(NSWindow),这是通过调用窗口(NSWindow)的sendEvent:方法完成的. NSWindow派发事件时会根据事件类型略有不同:对于鼠标和触控板事件,NSWindow对象会将事件派发到用户鼠标点击的NSView.对于键盘(keyboard)事件,NSWindow通常会将事件派发给 当用户在一个视图控件上点击鼠标按钮后,如果包含这个视图的NSWindow不是key Window,那么这个NSWindow将会变成key Window,并且丢弃本次的鼠标事件;也就是说如果你用鼠标点击了一个不是

    3.4K60发布于 2018-08-23
  • 来自专栏github@hornhuang

    【iOS】获取当前 NSViewController 的 window 以及其所在 NSWindowController 的 window

    NSWindowController 本身也持有,所以也很简单啦 self.window 这里要注意:由于 window 是在 NSWindowController 上,而 NSView 和 NSVC 又都是在 NSWindow 上 所以这三个上获得的 NSWindow 是同一个 NSWIndow # 最后 新制作了期视频 【漫画编程】27 岁没文凭能不能转行程序员?

    1.5K10发布于 2021-09-26
  • 来自专栏macOS 开发学习

    Mac开发跬步积累(六): 响应链NSResponder Chain

    )的响应链进行处理;事件消息的处理起始于NSWindow的第一个派发对象. 对于键盘事件, 响应是从窗口的第一响应者开始; 对于鼠标/触控板事件,响应是从用户操作的view开始; 如果事件消息在最初没有响应,那么响应链将按照视图的层级结构依次传递消息,直到窗口对象(NSWindow 对象的最初始第一响应者是它自己,当window显示在屏幕上时,也可以手动设定它的第一响应者对象(使用NSWindow对象的makeFirstResponder:方法). 当一个NSWindow对象在接收到鼠标点击(mouse-down)事件时,会自动设置鼠标所处的View为第一响应者;那么NSWindow对象如何确认某个对象是否能够成为第一响应者呢? NSWindow 的makeFirstResponder: 生效的条件是什么? NSViewController实现acceptsFirstResponder方法并返回YES 有效果么? 为什么?

    2.8K10发布于 2019-04-09
  • 来自专栏来自GitOPEN的技术文摘

    日常踩坑实录

    3976088] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'NSWindow 0x00007fff2c5fa30c -[NSException raise] + 9 3 AppKit 0x00007fff2974a538 -[NSWindow (NSWindow_Theme) _postWindowNeedsToResetDragMarginsUnlessPostingDisabled] + 310 4 AppKit 0x00007fff29731ed5 -[NSWindow _initContent:styleMask:backing:defer:contentView:] + 1416 75 python Abort) 主体错误为: Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'NSWindow

    2.1K11发布于 2020-02-14
  • 来自专栏github@hornhuang

    【iOS】获取当前 NSViewController 的 window 以及其所在 NSWindowController 的 window

    NSWindowController 本身也持有,所以也很简单啦 self.window 这里要注意:由于 window 是在 NSWindowController 上,而 NSView 和 NSVC 又都是在 NSWindow 上 所以这三个上获得的 NSWindow 是同一个 NSWIndow

    74730编辑于 2021-12-30
  • 来自专栏macOS 开发学习

    Mac开发跬步积累(五): Dark Mode下适配你的UI界面

    NSWindow会继承App的appearance效果; NSView会继承其父类或者NSWindow的appearance效果; 开发者可以设置App的整体或者部分的appearance效果; 当Appkit 0x04: 定制App的appearance(NSApp) 设置NSView或者NSWindow的appearance: NSView Appearance 注意点!!! Appearance是存在继承关系的:NSApp->NSWindow->NSView 通过代码方式设置NSView的appearance: class MyContentView : NSView {

    2.8K20发布于 2018-12-14
  • 来自专栏前端样式

    手把手教你实现HazeOver

    让遮罩窗口位于最前方窗口后面一番搜索查找,在 NSWindow 的官方文档上找到了答案,NSWindow 实例上有一个 order(_:relativeTo:) 的方法,可以指定这个窗口实例放在某个弹窗的上面或下面 如此终于就能调用 NSWindow.order(:relativeTo:) 的方法了,如此,第一个问题也就有了技术方案。2.

    52530编辑于 2023-11-01
  • 来自专栏CoderStar

    当 Swift 中的 lazy、weak 碰上 NSObject

    While this is uncommon, some Cocoa classes, like NSWindow, suffer from this limitation. with a message like this: objc[2478]: cannot form weak reference to instance (0x10360f000) of class NSWindow

    48240编辑于 2022-09-23
  • 来自专栏Helloted

    macOS APP从零到上架

    NSWindowContorller 在iOS上,APP只有一个Window,所有的View都在这个唯一的Window上,所以我们不需要管理Window,但是,在macOS上可以有多个窗口Window,所以相对应的有NSWindow NSWindowStyleMaskTitled | NSWindowStyleMaskClosable | NSWindowStyleMaskMiniaturizable | NSWindowStyleMaskResizable ; NSWindow *window0 = [[NSWindow alloc]initWithContentRect:CGRectMake(0, 0, 500, 200) styleMask:style backing:NSBackingStoreBuffered

    1.2K20编辑于 2022-06-08
  • 来自专栏一“技”之长

    NSAlert组件应用总结 原

    NSModalResponse)runModal; //以窗口抽屉的方式弹出警告框,这个方法是异步的,当用户点击警告框中的按钮后会回调block - (void)beginSheetModalForWindow:(NSWindow otherButton informativeTextWithFormat:(NSString *)format, ...; //弹出警告框 - (void)beginSheetModalForWindow:(NSWindow

    1.8K51发布于 2018-08-15
  • 来自专栏技术总结

    UIView不可不知的秘密

    前言: 1、在Mac OS中NSWindow的父类是NSResponder,而在iOS中UIWindow的父类是UIView。程序一般只有一个窗口但是会又很多视图。

    2K90发布于 2018-05-22
  • 来自专栏mukekeheart的iOS之旅

    OC学习7——类别、扩展和协议

    例如NSWindow类就采用这种设计思想,具体可以在xcode上查看NSWindow.h文件。

    90160发布于 2018-02-27
  • 来自专栏月色的自留地

    两种方法操作其它mac应用的窗口

    continue; } //下面这个方法是手册中最先查到的,但仅对属于自己app的窗口有效,其它app的窗口无效,所以不能采用 //NSWindow

    2.1K50发布于 2018-06-20
  • 来自专栏君赏技术博客

    HQ移动20170317期周报

    设置 NSWindow 不允许用户改变大小 设置 ReSize 属性为 NO 5.

    69830发布于 2018-08-31
  • 来自专栏nimomeng的自我进阶

    Objective-C官方文档

    命名最好用名词,以表示所指,例如:NSWindow, CAAnimation等 如果method需要一个或多个参数,方法名需要暗示出每一个参数,比如:subStringFromIndex: writeToUrl

    1.9K30发布于 2018-09-13
  • Flutter Channel 与 Swift 集成 MacOS Authorization Services

    FlutterMacOSimport Foundationimport Security@mainclass AppDelegate: FlutterAppDelegate { var window: NSWindow

    91410编辑于 2024-10-25
  • 来自专栏nimomeng的自我进阶

    OC编程笔记

    命名最好用名词,以表示所指,例如:NSWindow, CAAnimation等 如果method需要一个或多个参数,方法名需要暗示出每一个参数,比如: subStringFromIndex: writeToUrl

    92930发布于 2018-09-13
  • 来自专栏君赏技术博客

    一键替换Key Mac软件的制作教程第一篇

    我们在Stroyboard里面的NSWindow设置那里发现这个位置,看显示屏幕的位置就是我们刚才运行的位置。 initial Position看英文的意思是初始化的坐标,这个应该是的。

    1.1K10发布于 2018-08-31
  • 来自专栏Molier的小站

    汇编寄存器的规则

    例如,如果您想将前部 NSWindow 更改为红色,但是在代码中没有对该视图的引用,又不想重新编译任何代码怎么办? 您只需创建一个断点就可以轻松调试,从寄存器中获取引用并根据需要操纵该对象的实例。 注:尽管 NSResponder 实现了 mouseDown: 方法,但 NSWindow 重写了它。 All breakpoints removed. (3 breakpoints) (lldb) 然后在 LLDB 控制台中键入以下内容: (lldb) breakpoint set -o -S "-[NSWindow

    3.6K50编辑于 2022-11-03
  • 来自专栏macOS 开发学习

    一步一步,开始上手Mac 开发(一)

    在OSX中,窗口(NSWindow class)总是会默创建一个view,叫做contentView,它的尺寸自动跟随窗口变化,如果想添加view到窗口中,那么要使用addSubView方法把它们加到contentView

    4.6K40发布于 2018-08-23
领券