问题标签 [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.
cocoa - 如何知道哪个 NSTableView 打开了上下文菜单?
我有 5 个具有相同上下文菜单的 NSTableView 实例。当我收到菜单已被单击的消息时,我需要知道哪个表发送了它。我已经检查了 NSMenu 文档,但我似乎没有找到一种方法来检查哪些表打开了菜单..
我正在考虑继承 NSTableView 并在 menuForEvent 上向代表发送消息,这是最好的方法吗?
更新:
感谢 Joshua,我正在使用 5 个表格来显示每周 5 天的任务计划。每个表代表一个工作日,我添加了用于添加和删除任务的上下文菜单。因此,当用户在工作日单击“添加任务”时,我需要知道是哪一个。我通过子类化 tableview 并在打开菜单时向委托发送消息来使其工作。通过这种方式,我的控制器知道哪个表是最后调用菜单的。但在我看来,这似乎不是最好的实现,也许就像你说的问题出在 UI 上,你怎么看?何塞。
cocoa - 单击无边框 NSButton 时变为灰色
我正在使用带有图像集的三个 NSButton 制作一个小应用程序。这些按钮没有边框也没有背景。但是,当我单击一个按钮时,它会变成一个灰色矩形。
我怎样才能解决这个问题?谢谢。
objective-c - 禁用应用程序的完整键盘访问
可以使用某些 API 控制“完全键盘访问”(系统首选项 -> 键盘 ->(无线电)所有控件)吗?当这个东西在我的应用程序中打开时,它会导致重大问题(比如按钮无法按预期工作等......它有一些自定义 UI)
问候, 埃里克
iphone - 编写适用于 iOS 和 Mac OS 的类
编写可在 iOS 和 Mac OS 应用程序中使用的类的好方法是什么?我不是想在这里获得一个完整的跨平台 UI 解决方案,只是一种在 Mac 上运行的支持应用程序中使用我的 iPhone 应用程序中的几个模型类的方法。其中一些类需要进行一些小的更改才能在 Mac OS 下编译。这似乎是对宏的调用,但我不知道通常使用哪些宏。任何建议或共享经验将不胜感激。
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
文本字段无济于事。
cocoa - appkit 应用程序中的自动释放池
我很难准确理解何时在 AppKit 应用程序中创建和发布自动释放池。
例如,如果我有一个覆盖 init 的 ApplicationController 类,是否有一个自动释放池在它开始之前被创建并在它结束后被耗尽?
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
在屏幕上成功显示窗口?我不想继续使用该属性只是为了让我的窗口出现在屏幕上!
cocoa - 绘制 NSWindow 时某些用户的 CGContextSetCompositeOperation 错误
我编写的一个简单的 10.6 Cocoa 应用程序基本上绘制了一个带有一些按钮和文本的常规窗口,它一直在喷出数百条控制台日志消息:
我不直接调用 drawRect: 并且在需要刷新时总是使用 setNeedsDisplay:YES 。
有趣的是,这个错误并不是在所有机器上都会发生,我会说大约 50% 的人会得到这个错误。但是,该程序在任何一种情况下都可以正常工作!
任何人都知道这个错误意味着什么,它来自哪里,更重要的是,我怎样才能抑制/摆脱它?
谢谢
macos - 两个表的链接滚动
如何链接(同步)Cocoa AppKit 中两个 NSTableView(或其底层 NSScrollView)的滚动?
我尝试简单地将一个滚动条设置为另一个滚动条,但这会导致第二个表格失去对滚动条的控制(即它不再出现在表格旁边)。
一个较早的问题针对 UIKit 解决了这个问题,但 AppKit NSScroller 似乎没有提供等效的接口。
任何帮助表示赞赏!
objective-c - 奇怪的 NSPasteboard 和 TextEdit 交互
我正在从我的应用程序的两个位置拖放一个字符串。一份来自习俗NSView
,一份来自NSTableDataSource
委托。第一个允许我将文本拖到 TextEdit 应用程序中,第二个不允许。我可以从这两个应用程序拖动到终端或 TextMate 等其他应用程序。据我所知,我对两者都使用了几乎相同的代码。
我试图找出问题所在。它原则上有效,因为我可以拖动到某些应用程序。但是 TextEdit 发生了什么?
从自定义 NSView:
从表委托:
如果我为第一个打印出 pboard 的类型:
对于第二个:
同样,第一个的内容:
第二个
据我所知,两者的行为应该相同。但他们不是。想法?