标签: appkit

什么负责释放NSWindowController对象?

让我说我显示一个这样的窗口:

[[TBAddTaskWindowController new] showWindow:self];

TBAddTaskWindowController对象意味着要发布在哪里?是否在windowWillClose中调用[self release]的通用解决方案?

让任何其他对象"拥有"窗口是不对的,因为它意味着存在直到用户关闭它.

cocoa objective-c appkit

2
推荐指数
1
解决办法
2090
查看次数

NSLevelIndicator - 可可

我怎样才能使用NSLevelIndicator?我对此非常陌生,所以我对如何在我的应用程序中使用进度条知之甚少.

cocoa appkit nsprogressindicator nslevelindicator progress-bar

2
推荐指数
1
解决办法
4520
查看次数

强制更新 Cocoa 应用程序主菜单的 NSMenu(嵌套子菜单)

    \n
  1. 我插入了一些子菜单作为主菜单的窗口项子菜单
  2. \n
  3. 我有一个从 NSObject 继承的对象实例(假设其类名为 MenuController),并支持 NSMenuDelegate 方法中的 2 个:\n\xe2\x80\x93 numberOfItemsInMenu:\n\xe2\x80\x93 menu:updateItem :atIndex:应该取消:
  4. \n
  5. 该实例作为蓝色对象添加到 NIB 中以便在运行时唤醒
  6. \n
  7. 将步骤 2-3 中的对象配置为子菜单的委托(步骤 1)
  8. \n
\n\n

现在,我可以在运行时提供子菜单内容。

\n\n

接下来,我执行以下操作:我可以添加新项目或从数组(包含菜单标题的 MenuController 内部)中删除旧项目,该数组通过协议和委托映射到真实的子菜单。\n一切都很好。\n除了一件事:我喜欢分配快捷方式到我的动态菜单项。\nCMD-1、CMD-2、CMD-3 等

\n\n

窗口 / MySubmenu / MyItem1 CMD-1, MyItem2 CMD-2, ...

\n\n

因此,为了调用某些项目,我不想去 Window / MySubmenu / MyItem 通过鼠标单击它,我只想按一个快捷键,例如 CMD-3 来调用该项目。

\n\n

好的,定期它会按预期工作。但是,一般来说,我无法通知主菜单有关嵌套子菜单的更改,除非打开 Window / MySubmenu 重新加载其内容。\n重现该问题的一种稳定方法 - 只需尝试删除某些项目并按分配的旧快捷键即可对此,在您创建新项目作为已删除的替换后 - 宾果 - 在导航到 Window / MySubmenu 查看当前子菜单内容之前,快捷方式将不起作用。

\n\n

我不知道如何强制主菜单重建其子菜单...\n我尝试过:[[NSApp mainMenu] update] 和使用 NSNotificationCenter 发送 NSMenuDidAddItemNotification、NSMenuDidRemoveItemNotification、NSMenuDidChangeItemNotification 的游戏

\n\n

我尝试出口到我的子菜单并显式调用更新方法 - 没有办法...\n有时 …

cocoa nsmenu appkit

2
推荐指数
1
解决办法
5628
查看次数

在Mac App Store中使用未记录的类,例如NSPreferences

有一个名为的未记录的类NSPreferences似乎由Safari和Mail使用,并且可以轻松创建多页首选项页面.

有没有人NSPreferences在提交到Mac App Store的应用程序中使用或类似未记录但有用且有趣的功能?

cocoa objective-c appkit mac-app-store

2
推荐指数
1
解决办法
1437
查看次数

切换文件夹时,Reeder Mac app动画列表如何?

最初我的印象是它在插入/删除新行时使用表格行向上/向下动画,但我怀疑它是否正在这样做,因为即使列表中包含数千个项目也是如此流畅(否则会花费很多删除/插入工作的时间).

我是否正确地假设它只是在屏幕底部附加一个新的新闻列表实例,缩小上面的一个而底部的那个扩展以填满空间?

更新:

请看这个我的意思的视频:http://dl.dropbox.com/u/4960327/ReederAnim.mov

cocoa core-animation objective-c appkit xcode4

2
推荐指数
1
解决办法
384
查看次数

在10.10 Yosemite中禁用/自定义NSPopUpButton动画

语境:

在OS 10.10中,Apple为各种控件添加了一些新的微妙动画.例如,当您选中一个复选框时,蓝色的"已检查"状态现在通过从复选框的中心向外扩展而不是突然切换到"已检查"图像来设置动画.

同样,当您打开NSPopUpButton并从菜单中选择一个项目时,菜单动画关闭,所选项目显示为"放大"popUpButton.

问题:

我已经定制了NSPopUpButtons,它们的绘制方式与默认的NSPopUpButton不同:

在此输入图像描述

当我在弹出菜单中选择一个项目时,10.10中的新动画会在动画显示(蓝色右侧等)时简要显示系统默认的popUpButton样式.

这是正在进行的动画的屏幕截图,显示系统默认的popUpButton动画.(后面的深灰色矩形是我的自定义NSPopUpButton的"按下"状态):

在此输入图像描述

我需要的

通过自定义控件,这个动画显然看起来很糟糕 有没有办法禁用它或自定义它?我一直找不到.

macos cocoa objective-c appkit nspopupbutton

2
推荐指数
1
解决办法
1108
查看次数

如何在OS X上制作圆角WKWebView?

如何在OS X上制作圆角WKWebView?

以前使用NSWebView,我们可以通过图层来完成:

webView.wantsLayer = YES;
webView.layer.cornerRadius = 5;
webView.layer.masksToBounds = YES;
Run Code Online (Sandbox Code Playgroud)

但在WKWebView上它不再有效.

cocoa objective-c calayer appkit wkwebview

2
推荐指数
1
解决办法
1098
查看次数

防止应用程序激活时创建 NSDocument

当基于文档的应用程序处于活动状态并且没有打开的窗口时,会自动创建一个新的文档窗口。我想防止这种行为并显示“选择模板”对话框,而不是默认创建空白文档。

正如您在屏幕截图中看到的,新文档是在NSApplicationMain.

在此输入图像描述

我怎样才能防止这种情况并显示我的窗口?

macos cocoa nsdocument appkit

2
推荐指数
1
解决办法
254
查看次数

如何在 NSView 中手动布局?

UIView我可以通过覆盖-layoutSubviews和来进行手动布局-sizeThatFits:。当嵌入到自动布局容器等中时,这可以正常工作。 的等效项是什么NSView

-layout-fittingSize是显而易见的选择,但文档表明这些是特定于自动布局的。

layout cocoa nsview appkit

2
推荐指数
1
解决办法
873
查看次数

SwiftUI:如何在 TextEditor 中禁用“智能引号”

我正在使用 SwiftUI 为 MacOS 开发基于 Python 的图形计算器。

https://github.com/snakajima/macplot

我使用 SwiftUI 的 TextEditor 作为 Python 代码的编辑器,但我无法弄清楚如何禁用智能引号(UITextInputTraits、smartQuotesType:UITextSmartQuotesType)。

        VStack {
            TextEditor(text: $pythonScript.script)
            HStack {
                Button(action: {
                    pythonScript.run(clear: settings.shouldClear)
                }, label: {
                    Text("Plot")
                })
                Toggle("Clear", isOn: $settings.shouldClear)
            }
            if let errorMsg = pythonScript.errorMsg {
                Text(errorMsg)
                    .foregroundColor(.pink)
            }
        }
Run Code Online (Sandbox Code Playgroud)

appkit uitextinputtraits swift swiftui

2
推荐指数
1
解决办法
136
查看次数