appkit 相关问题

Application Kit是OpenStep操作系统提供的类集合,如OPENSTEP,GNUstep和Mac OS X.

自定义表格视图中与NSStackView对齐的问题

对于我的跨平台项目(Mac 和 Windows),我利用 Objective-C 中 AppKIt 中的 NSStackView 编写了一个通用的 C++ 集合视图(即表视图)(因为我可以混合使用 ObjC 和 C++...

回答 1 投票 0

如何在NSWindow中显示sheet视图

如何实现下图中的视图。 在“系统偏好设置”>“网络”中单击“+”按钮时出现的视图 我有以下问题: 这个视图系统有没有具体的...

回答 1 投票 0

如何获取符合当前配色方案的 macOS 壁纸图像 URL?

我希望获取 macOS 上当前壁纸图像的 URL,当使用基于活动的具有不同外观的壁纸时,这也会考虑当前的配色方案

回答 1 投票 0

如何找出特定 NSScreen 上是否有全屏应用程序运行

亲爱的 Stack Overflow:我希望你的网站消亡,因为这是你将社区的辛勤工作卖给人工智能江湖骗子应得的。希望你对欺骗制作此内容的人感到高兴...

回答 4 投票 0

如何使用 objc2 将 Rust 函数作为选择器传递到 NSMenuItem.action 中?

我有下一个代码来在AppDelegate中构建应用程序菜单(AppDelegate代码取自官方示例): 实现 AppDelegate { fn new(mtm:MainThreadMarker,菜单:选项 我有下一个代码用于在AppDelegate中构建应用程序菜单(AppDelegate代码取自官方示例): impl AppDelegate { fn new(mtm: MainThreadMarker, menu: Option<Menu>) -> Id<Self> { let this = mtm.alloc(); let this = this.set_ivars(Ivars { mtm, menu, }); unsafe { msg_send_id![super(this), init] } } fn build_menu(&self, menu: &Menu, ns_menu: &Id<NSMenu>) { let ivars = self.ivars(); for item in menu.items.iter() { let ns_menu_item = NSMenuItem::new(ivars.mtm); let title = NSString::from_str(&item.name); unsafe { ns_menu_item.setTitle(&title) }; if let Some(on_click) = &item.on_click { unsafe { ns_menu_item.setAction(Some(on_click)) }; } if let Some(submenu) = &item.submenu { let ns_submenu = NSMenu::new(ivars.mtm); self.build_menu(submenu, &ns_submenu); ns_menu_item.setSubmenu(Some(&ns_submenu)); } ns_menu.addItem(&ns_menu_item); } } fn create_menu(&self, application: Id<NSApplication>) { let ivars = self.ivars(); if let Some(menu) = &ivars.menu { let main_menu = NSMenu::new(ivars.mtm); application.setMainMenu(Some(&main_menu)); self.build_menu(menu, &main_menu); } } } 问题出在这部分代码: if let Some(on_click) = &item.on_click { unsafe { ns_menu_item.setAction(Some(on_click)) }; } on_click: fn()是一个Rust函数,我不知道如何使用objc2将其作为Objective-C选择器传递。 在生成的 AppKit 中,该方法如下所示: #[method(setAction:)] pub unsafe fn setAction(&self, action: Option<Sel>); 我很确定有一种更简单的方法,但是...我已经使用自定义 NSMenuItem 类解决了我的问题: #[derive(Debug)] #[allow(unused)] struct MacMenuItemIvars { action: Option<fn()>, } declare_class!( struct MacMenuItem; unsafe impl ClassType for MacMenuItem { type Super = NSMenuItem; type Mutability = mutability::MainThreadOnly; const NAME: &'static str = "MenuItem"; } impl DeclaredClass for MacMenuItem { type Ivars = MacMenuItemIvars; } unsafe impl MacMenuItem { #[method(callback)] fn __callback(&self) { if let Some(action) = self.ivars().action { action(); } } } unsafe impl NSObjectProtocol for MacMenuItem {} ); impl MacMenuItem { fn new<S>(mtm: MainThreadMarker, title: S, action: Option<fn()>) -> Id<Self> where S: Into<String>, { let this = mtm.alloc(); let this = this.set_ivars(MacMenuItemIvars { action, }); let item: Id<MacMenuItem> = unsafe { msg_send_id![super(this), init] }; let title: String = title.into(); let title = NSString::from_str(&title); unsafe { item.setTitle(&title) }; if action.is_some() { unsafe { item.setTarget(Some(&item)) }; unsafe { item.setAction(Some(sel!(callback))) }; } item } } 必须有一种方法可以使用 Objective-C 块达到相同的结果。不过我没明白怎么办。

回答 1 投票 0

NSViewRepresentable.updateNSView 不会被调用,除非修改后的绑定变量在内部使用

这是 SwiftUI 的预期行为吗?我可能只是不太了解 SwiftUI,但它看起来非常违反直觉,所以我想我应该问一下。 这是一个最小的例子: @主要的 结构 SwiftUI_exampl...

回答 1 投票 0

自定义 NSTableRowView 的高亮颜色

我愿意 将强调的背景设置为红色。 当内容不是关键时,保留用 unemphasizedSelectedContentBackgroundColor 替换强调背景的行为(例如,我们选择...

回答 1 投票 0

NSProgressIndicator 绑定不执行任何操作

我正在尝试将 NSProgressIndicator 绑定到 Progress,但是使用以下代码,我只能得到一个不确定的进度指示器,其中蓝色条永远左右弹跳,即使在两个之后...

回答 1 投票 0

在 SwiftUI 中使用 NSTextView 时查找栏不起作用

我正在尝试将查找栏添加到 SwiftUI 视图中的 NSTextView,但是尽管设置了必要的属性(usesFindBar、usesFindPanel、isIncrementalSearchingEnabled),查找栏却没有

回答 1 投票 0

如何获取Mac上所有已安装的应用程序及其详细信息? (不仅仅是运行应用程序)

NSWorkspace有https://developer.apple.com/documentation/appkit/nsworkspace/1534059-runningapplications,它返回NSRunningApplication的列表。 NSRunningApplication 提供图标、bundleURL、

回答 2 投票 0

有没有办法使用 Swift 和 AudioKit 创建音频文件的频谱图?

我正在尝试使用 Swift 为 macOS 应用程序从音频文件创建一个频谱图,如图所示。我正在使用 AppKit,但也可以实现 SwiftUI。我偶然发现了音频套件,它

回答 3 投票 0

更改 NSTableView 标题字体颜色

如何更改 NSTableHeaderView 的字体大小、颜色和其他属性? 有人已经在这里回答了这个问题,但是接受的答案已经过时了,因为它是针对基于单元格的 TableVie...

回答 1 投票 0

如何使用swift在macos上创建全屏覆盖?

有谁知道如何在不进入全屏模式的情况下使此视图覆盖全屏?本质上我只需要让这个窗口覆盖菜单栏所在的顶部区域。 我试过了

回答 1 投票 0

从 CALayer 中删除动画

我目前正在构建一个绘图应用程序,该应用程序应该利用 CALayer 层次结构来避免在不必要时重绘每个图层(例如,我想渲染临时内容,例如在 sepa 上进行选择...

回答 1 投票 0

更新到 macOS Sonoma 后,工具提示未显示在自定义 NSTextField 中

我已将工具提示正确设置为我的自定义 NSTextField,该字段已添加到我的自定义视图中,但现在不起作用。 惰性变量 errorField: NSTextField = { 让 labelView = NSTextField() 标签视图。

回答 1 投票 0

为什么直接调用NSApplication.shared无法实例化Info.plist中Principal Class指定的类?

我想使用 NSApplication 的自定义子类来创建 NSApplication.shared 返回的应用程序实例。 类应用程序:NSApplication { // 我自己的方法 } 我设置了优先级...

回答 1 投票 0

如果我不使用storyboard/XIB文件,设置原理类不会影响NSApplication.shared实例化的类

背景: 我想使用 NSApplication 的自定义子类来创建应用程序实例。这是 NSApplication.shared 返回的对象的类。我已经尝试过以下方法: ...

回答 1 投票 0

如何在运行时有条件地更改应用程序的 NSAccentColorName?

我看到 Info.plist 根节点下的 NSAccentColorName 可以将应用程序强调色更改为 Xcode 资源文件中指定的颜色。 这个可以控制吗...

回答 1 投票 0

有没有办法确定 MacOS 应用程序在后台运行后是否有任何文本输入处于活动状态?

特定于 MacOS,但也许与 iOS 相关的响应也可以让我走上正确的道路: 我需要确定当...

回答 1 投票 0

有没有办法在当前应用程序中开始拖放操作时收到通知?

我正在开发一个框架,该框架旨在添加到本机 macOS 应用程序中,以便它可以将事件发布到应用程序的事件队列中以响应触摸屏事件。为了...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.