问题标签 [appkit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
353 浏览

cocoa - 如何知道哪个 NSTableView 打开了上下文菜单?

我有 5 个具有相同上下文菜单的 NSTableView 实例。当我收到菜单已被单击的消息时,我需要知道哪个表发送了它。我已经检查了 NSMenu 文档,但我似乎没有找到一种方法来检查哪些表打开了菜单..

我正在考虑继承 NSTableView 并在 menuForEvent 上向代表发送消息,这是最好的方法吗?

更新:

感谢 Joshua,我正在使用 5 个表格来显示每周 5 天的任务计划。每个表代表一个工作日,我添加了用于添加和删除任务的上下文菜单。因此,当用户在工作日单击“添加任务”时,我需要知道是哪一个。我通过子类化 tableview 并在打开菜单时向委托发送消息来使其工作。通过这种方式,我的控制器知道哪个表是最后调用菜单的。但在我看来,这似乎不是最好的实现,也许就像你说的问题出在 UI 上,你怎么看?何塞。

0 投票
3 回答
12143 浏览

cocoa - 单击无边框 NSButton 时变为灰色

我正在使用带有图像集的三个 NSButton 制作一个小应用程序。这些按钮没有边框也没有背景。但是,当我单击一个按钮时,它会变成一个灰色矩形。

我怎样才能解决这个问题?谢谢。

0 投票
1 回答
877 浏览

objective-c - 禁用应用程序的完整键盘访问

可以使用某些 API 控制“完全键盘访问”(系统首选项 -> 键盘 ->(无线电)所有控件)吗?当这个东西在我的应用程序中打开时,它会导致重大问题(比如按钮无法按预期工作等......它有一些自定义 UI)

问候, 埃里克

0 投票
1 回答
448 浏览

iphone - 编写适用于 iOS 和 Mac OS 的类

编写可在 iOS 和 Mac OS 应用程序中使用的类的好方法是什么?我不是想在这里获得一个完整的跨平台 UI 解决方案,只是一种在 Mac 上运行的支持应用程序中使用我的 iPhone 应用程序中的几个模型类的方法。其中一些类需要进行一些小的更改才能在 Mac OS 下编译。这似乎是对宏的调用,但我不知道通常使用哪些宏。任何建议或共享经验将不胜感激。

0 投票
2 回答
1456 浏览

cocoa - Cocoa (Snow Leopard) NSTextView 的 textStorage -setAttributes:range: 删除字符!

我不确定我做错了什么。我有一个 NSTextView 并注册为其 textStorage 属性的代表。当我收到时-textStorageDidProcessEditing:notification:,我正在尝试将属性应用于文本中的字符范围。它确实对角色有“一些作用”,但不是我所期望的......他们只是消失了!

一个高度提炼的代码示例。这应该确保文本字段中的第二个字符始终为红色:

相反,当我输入序列“abcdefg”时,我得到“a”,然后当我点击“b”时似乎没有任何反应,然后当我点击“cdefg”时,输入正常,最终结果为“acdefg”...... “b”不见了!

如果我开始按退格键,我必须按退格键 7 次,就好像“b”实际上在那里,但只是没有被绘制(光标在删除“b”时停止,然后在下一个退格键删除“a”为预期的)。

如果我在绘制视图之前-setAttributes:range:使用相同的方法将属性应用于视图中的某些默认文本,那么它完全符合我的预期。

有什么线索吗?这似乎是一个相当正常的使用NSTextStorageDelegate:)

我试过调用-setNeedsDisplay文本字段无济于事。

0 投票
1 回答
290 浏览

cocoa - appkit 应用程序中的自动释放池

我很难准确理解何时在 AppKit 应用程序中创建和发布自动释放池。

例如,如果我有一个覆盖 init 的 ApplicationController 类,是否有一个自动释放池在它开始之前被创建并在它结束后被耗尽?

0 投票
2 回答
290 浏览

c++ - 当可插拔 Cocoa 应用程序仅公开 C++ API 时,如何在插件中显示窗口?

我正在使用其 C++ 插件 API 在 Mac 上为 FileMaker Pro 11 Advanced 开发一个插件。我想NSWindow在屏幕上显示一个通过 XIB 文件加载的屏幕,但是如果在 XIB 文件中将窗口的“启动时可见”属性设置为“是”,我将无法显示该窗口。

我在尝试:

问题是,这不会使窗口出现在屏幕上。我也试过:

和:

和:

我对 Objective-C 和 Cocoa 非常陌生,所以我仍在学习有关在 Mac 上创建 GUI 的基本知识。但是,我不确定我的窗口控制器、我的窗口,甚至NSApp是“挂钩”FileMaker Pro;即我不知道我NSApp的是否和FileMaker 的一样NSApp。这是一个愚蠢的问题吗?

当“启动时可见”设置为“是”时,如何NSWindowController在屏幕上成功显示窗口​​?我不想继续使用该属性只是为了让我的窗口出现在屏幕上!

0 投票
1 回答
744 浏览

cocoa - 绘制 NSWindow 时某些用户的 CGContextSetCompositeOperation 错误

我编写的一个简单的 10.6 Cocoa 应用程序基本上绘制了一个带有一些按钮和文本的常规窗口,它一直在喷出数百条控制台日志消息:

我不直接调用 drawRect: 并且在需要刷新时总是使用 setNeedsDisplay:YES 。

有趣的是,这个错误并不是在所有机器上都会发生,我会说大约 50% 的人会得到这个错误。但是,该程序在任何一种情况下都可以正常工作!

任何人都知道这个错误意味着什么,它来自哪里,更重要的是,我怎样才能抑制/摆脱它?

谢谢

0 投票
1 回答
497 浏览

macos - 两个表的链接滚动

如何链接(同步)Cocoa AppKit 中两个 NSTableView(或其底层 NSScrollView)的滚动?

我尝试简单地将一个滚动条设置为另一个滚动条,但这会导致第二个表格失去对滚动条的控制(即它不再出现在表格旁边)。

一个较早的问题针对 UIKit 解决了这个问题,但 AppKit NSScroller 似乎没有提供等效的接口。

任何帮助表示赞赏!

0 投票
0 回答
294 浏览

objective-c - 奇怪的 NSPasteboard 和 TextEdit 交互

我正在从我的应用程序的两个位置拖放一个字符串。一份来自习俗NSView,一份来自NSTableDataSource委托。第一个允许我将文本拖到 TextEdit 应用程序中,第二个不允许。我可以从这两个应用程序拖动到终端或 TextMate 等其他应用程序。据我所知,我对两者都使用了几乎相同的代码。

我试图找出问题所在。它原则上有效,因为我可以拖动到某些应用程序。但是 TextEdit 发生了什么?

从自定义 NSView:

从表委托:

如果我为第一个打印出 pboard 的类型:

对于第二个:

同样,第一个的内容:

第二个

据我所知,两者的行为应该相同。但他们不是。想法?