Cocoa:NSApp beginSheet 设置应用程序委托?

2024-02-04

我正在尝试在我的应用程序中显示自定义工作表,但我认为我做错了什么。虽然一切seems为了工作得很好,我有一个相当奇怪的副作用。 (花了几个小时才弄清楚)。事实证明,每次我在应用程序中显示工作表时,应用程序委托都会设置为工作表的实例,因此我的控制器得到unset作为造成各种问题的代表。

我创建了一个 NIB 文件,将其命名为 FailureSheet.xib。我在 IB 中布置了界面,然后创建了一个名为“FailureSheet.m”的“NSWindowController”子类,并将其设置为文件的所有者。这是我的 FailureSheet 类:

#import "FailureSheet.h"

@implementation FailureSheet  // extends NSWindowController

- (id)init
{
    if (self = [super initWithWindowNibName:@"FailureSheet" owner:self])
    {

    }
    return self;
}

- (void)dealloc
{
    [super dealloc];
}

- (IBAction)closeSheetTryAgain:(id)sender
{   
    [NSApp endSheet:[self window] returnCode:1];
    [[self window] orderOut:nil];
}

- (IBAction)closeSheetCancel:(id)sender
{
    [NSApp endSheet:[self window] returnCode:0];
    [[self window] orderOut:nil];
}

- (IBAction)closeSheetCancelAll:(id)sender
{
    [NSApp endSheet:[self window] returnCode:-1];
    [[self window] orderOut:nil];
}

@end

这里没有什么复杂的事情发生。现在,这就是我在“Controller”类中显示 FailureSheet 的方式:

sheet = [[FailureSheet alloc] init];

[NSApp beginSheet:[sheet window]
   modalForWindow:window
    modalDelegate:self
   didEndSelector:@selector(failureSheetDidEnd:etc:etc:)
      contextInfo:nil];

现在,如果我在显示工作表之前记录 [NSApp delegate] 是什么,则它是正确的 。然后,运行此代码并且我的工作表已启动后,如果我再次记录它,则它是

不确定我在这里做错了什么 - 有什么想法吗?


这是“我是个白痴”的答案之一。

事实证明,我在某个时候不小心在工作表的 NIB 文件中在应用程序和文件所有者 (FailureSheet) 之间建立了连接,并将其设置为委托。因此,每次加载它时,它都会覆盖 MainMenu NIB 文件中现有的委托连接。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Cocoa:NSApp beginSheet 设置应用程序委托? 的相关文章

  • 如何将谓词作为参数传递#

    如何将谓词传递到方法中 但在没有传递谓词的情况下仍使其工作 我想也许是这样的 但似乎并不正确 private bool NoFilter return true private List
  • Java 开发人员在 Mac OS 上遇见 Objective-C

    很多年前我就用 C 进行过开发 但现在我主要是一名 Java 软件工程师 鉴于我拥有一部 iPhone 准备下个月购买 MacBook 并且总体上对开始 Mac OS 开发 使用 Objective C 感兴趣 我想我应该提出这个问题 下一
  • OSX/Cocoa 应用程序通常使用什么位置来存储数据文件?

    他们是否将它们写入 存储在应用程序包 包本身中 或者其他一些规范位置 还是好像没有什么标准 文件通常会进入 Library Application Support Your App 偏好设置进去 Library Preferences
  • 如何创建无法创建新文档的基于文档的应用程序?

    我有一个基于文档的应用程序 旨在处理现有文档 而不是创建新文档 如何防止应用程序在通过 Finder 打开应用程序时创建新的空白文档 您可以实现一个 NSApplication 委托协议方法 BOOL applicationShouldOp
  • asp.net vb 用户控件在调用页面上引发事件

    我正在尝试了解用户控件 我创建了一个具有文本框和按钮的用户控件 我想要做的是 当我单击用户控件中的按钮时 在 aspx 页面中填充标签 我知道我可以在页面上有一个按钮 使用用户控件上的一些属性来获取该信息 但我想知道如何使用用户控件的按钮来
  • NSMenuItem 中的自定义 NSView 未接收鼠标事件

    我使用 popUpStatusItemMenu 从 NSStatusItem 中弹出一个 NSMenu 这些 NSMenuItems 显示了一堆不同的链接 每个链接都通过 setAction 连接到目标的 openLink 方法 这种安排长
  • 使用 NSCoder 编码 CGPoint 结构

    如何编码和解码CGPoint结构使用NSCoder 编码 CGPoint point point from somewhere NSValue pointValue NSValue value point withObjCType enco
  • 我希望能够使用 lambda 表达式来指定要通过 wcf 服务返回的值范围

    我不知道这是否可能 但这会很酷 问题是这是否可能 但如果可能的话 举一个例子 我不确定您将使用什么方法签名来将 lambda 表达式传递到其中 例如方法IList
  • Cocoa Accessibility API,我可以单击后台窗口而不激活它吗?

    我一直在寻找解决这个问题的方法 所以我想我应该寻找比我更伟大的头脑 我正在开发一个 Cocoa 应用程序 它使用 Accessibility API 来操作另一个程序 它是一个热键应用程序 我控制的应用程序通常会打开多个窗口 其中一些窗口隐
  • Cocoa - 在另一个 xib 上显示 xib

    谁能告诉我如何 或指导我有关信息 在另一个 xib 笔尖 上显示 xib 笔尖 我希望如何放置它 以便我可以以编程方式将它移动到主笔尖 就像这样 这显然不起作用 void drawRect NSRect dirtyRect NSRect c
  • 如何从 Xcode 4 中的实体创建用户界面?

    我已经用核心数据进行了几天的实验 并且在过去的几个小时里尝试找出如何从 xcode 4 中的实体创建 UI 根据我一直在阅读的书籍 您必须选择将核心数据实体拖到界面生成器中的窗口中 但是当我在 xcode 4 中执行此操作时 没有任何反应
  • 获取本周的第一天和最后一天

    如何获取本周的第一天和最后一天 我需要的是某种方法来过滤一组具有 NSDate 属性的对象 只留下本周出现的对象 然后按天过滤它们 我还需要一些方法来获取本地化的日期名称 我尝试使用 NSCalendar NSDate 和 NSDateCo
  • 如何从 DTrace 脚本打印 NSString

    This question https stackoverflow com questions 1413623 how do i print a cfstringref in a dtrace action正在问同样的事情 但是当我尝试时
  • 为每行 NSTableView 文本着色

    我有一个 NSTableView 它显示我拥有的对象数组 对于每个对象 行 我想根据在每个对象上运行的函数的结果来更改显示的文本的颜色 因此 例如表中存在于另一个列表 或其他一些要求 中的所有对象 我想以绿色文本显示它们 不存在的对象以红色
  • 使用 NSError 检查错误的正确结构

    我正在编写各种例程 并尽力保持其整洁和重构 我正在创建的方法开始看起来与此代码类似 IBAction buttonPress id sender Create Document Shopping List with this documen
  • Codesign:什么是未密封内容?

    我刚刚升级到 XCode 6 并尝试构建我的开发者 ID 签名的 Mac 应用程序 但是 我现在收到以下协同设计错误 unsealed contents present in the root directory of an embedde
  • 避免“在此块中强烈捕获自身可能会导致保留周期”消息

    每次我必须在块内使用全局变量或属性时 如下所示 self save if isItSaving NO self saveMyFile 我必须像这样重写 BOOL iis isItSaving id myself self self save
  • 在 cocoa touch 中以编程方式将视图位置设置为右上角

    我需要确保一个视图 A 尺寸 200x200 始终与第二个视图 B 全屏尺寸 内的右上角对齐 我想确保无论设备方向如何 视图 A 都保留在该位置 事实是 当使用界面生成器来定位视图时 我对此没有任何问题 但我需要以编程方式构建它 我想我应该
  • NSView 鼠标跟踪

    我在 Mac OS X 上遇到了 Cocoa NSView 的奇怪行为 我在 NSView 容器中有一个自定义 NSView 这个自定义 NSView 跟踪鼠标移动 点击 并有一个工具提示 当我在所描述的视图上方添加 NSView 时 即使
  • 如何将NSTextView的格式化内容转换为字符串

    我需要将 NSTextView 的内容从 Mac 应用程序传输到 iOS 应用程序 我使用 XML 作为传输文件格式 所以我需要将 NSTextView 的内容 文本 字体 颜色等 保存为字符串 有什么办法可以做到这一点吗 一种方法是存档

随机推荐

  • 如何使用.net更改Word文档的字体大小

    我正在使用 C 和 Spire Doc 开发一个应用程序 它将 Word 文档保存为指定的格式 其中包括标题处的徽标以及指定的字体大小和样式 现在我可以使用 spire doc 在标题处粘贴徽标 但我无法更改font风格和size整个文件的
  • iPhone 表格单元格标签未对齐

    如同上一个问题 https stackoverflow com questions 1770872 text misalignment on tableview cells on iphone device 我的表格单元格中的文本对齐有问题
  • JWT 令牌与 AJAX、非 AJAX、JQuery

    我对在登录 提交和重定向期间管理 JWT 令牌感到有点沮丧 在开始之前 先介绍一下我的技术堆栈 以防万一 JQuery Html gt Node Js gt Java Restful Services gt MySQL 我的 java Re
  • 有什么方法可以触发 RDTSC 的传统模式吗?

    我重写了整个问题 人们显然不理解 RDTSC 用于计算 CPU 周期 它随 CPU 限制而变化 目前 RDTSC 不随 CPU 限制而变化 一些旧的应用程序期望 RDTSC 随 CPU 限制而变化 我如何让 RDTSC 满足他们的期望 我不
  • 如何在Session Beans中使用自定义异常?

    EJB 3 1 会话 Bean import javax ejb public class FooException extends EJBException Stateless Local public class Foo public
  • 使用 PHPExcel 下载 xls 文件时出现损坏

    在我当前的项目中 我使用 PHPExcel 1 7 8 将数据导出到 Excel 按照建议 我在项目中成功配置了它 并成功生成了 xls 文件并存储了它 但是当我尝试下载 xls 文件时 我损坏了 xls 文件 而没有收到任何错误消息 我有
  • 如何从Google Form中提取数据并在提交前显示结果?

    假设我这里有一个谷歌表单 https docs google com forms d 1HnATawk6ioE7 EVKrtszxvScjmUSF7 ma0 9XhBZ hw viewform https docs google com f
  • 在 R 中循环读取多个文件

    我一直想知道是否有人知道如何创建一个在 R 中加载文件 数据库的循环 假设我有一些这样的文件 data1 csv data2 csv data100 csv 在某些编程语言中 您可以执行类似 data x csv 的操作 系统会像 data
  • 从另一个类调用扩展 Thread 的类的方法

    我知道这是一个有点幼稚的问题 但我想了解java中多线程背后的基本工作原理 考虑下面的代码 假设 A 在主线程中执行 并开始执行在类 B 中定义的另一个工作线程 我想知道从 A 调用的 B func1 和 B 的 run 方法是否可以并行执
  • 使用 NestedScrollView 并向 ListView 下游提供 ScrollController

    我有一个NestedScrollView当我使用时 它可以很好地自动隐藏AppBar 我想要的一项功能 SliverAppBar 我遇到问题的地方是我使用ListView Builder作为下游的身体组件之一 我需要应用自己的ScrollC
  • Facebook 登录在发布应用程序之前可以使用发布 APK,但在发布相同 APK 后则不能使用

    Facebook 登录可以在发布应用程序之前使用发布 APK 但在 Play 商店中发布相同的 APK 后则不能使用 我正在尝试实施Facebook登入过去两天进入我的应用程序 我已遵循所有步骤并添加了两个密钥哈希 对于debug and
  • Symfony2:如何覆盖核心模板?

    我试图通过创建来覆盖 SymfonyGeneratorBundle 模板 app Resources SensioGeneratorBundle skeleton crud views index html twig 该文件应替换 vend
  • oracle视图和网络流量

    我真的无法理解这一行来自Oracle 电子商务套件开发人员指南 http docs oracle com cd E18727 01 doc 121 e12897 T302934T303920 htm方法 当使用视图时 网络流量被最小化 因为
  • 在 R 中使用 for 循环绘制许多直方图

    我有一个 csv 文件 其中包含如下数据 RI Na Mg Al Si K Ca Ba Fe Type 1 1 51793 12 79 3 50 1 12 73 03 0 64 8 77 0 00 0 00 BWF 2 1 51643 12
  • IIS 上的 WordPress 永久链接?

    我在 Windows 7 IIS 上使用 WordPress 进行开发 我正在 WordPress 中上传博客文章的图像 该图像在网站上显示良好 但一旦我启用永久链接 图像就不再起作用 并且以后上传的任何图像都会返回错误 HTTP Erro
  • Python urllib2 URLError HTTP 状态代码。

    我想在引发 URLError 异常时获取 HTTP 状态代码 我尝试过这个但没有帮助 except URLError e logger warning It seems like the server is down Code str e
  • 如何使用web-api上传文件

    客户端代码
  • libgdx- pixmap:我可以以某种方式改变线的宽度吗?

    我想画一条线 然后生成一个纹理 使用 libgdx 我发现使用像素图从圆形 矩形和线条创建纹理非常简单 但我没有找到如何设置绘制形状的线宽 是否可以设置像素图的线宽 这是我到目前为止得到的代码 我尝试画两个实心圆并用一条线将它们连接起来 P
  • 如何选择列名并将其用作 Python 中变量名的输入?

    原问题 我正在编写一个 while 循环来循环某些列 在这个 while 循环中 我想创建一个变量 其名称部分由它循环的列名组成 x 2 length len grouped class columns while x
  • Cocoa:NSApp beginSheet 设置应用程序委托?

    我正在尝试在我的应用程序中显示自定义工作表 但我认为我做错了什么 虽然一切seems为了工作得很好 我有一个相当奇怪的副作用 花了几个小时才弄清楚 事实证明 每次我在应用程序中显示工作表时 应用程序委托都会设置为工作表的实例 因此我的控制器