objective-c - 滚动进程状态窗口

标签 objective-c cocoa vertical-scrolling

作为我正在开发的 Mac 应用程序的一部分,用户填写满屏幕的内容,然后按下“处理”按钮。进行了编辑,如果所有内容都通过了编辑,则会执行几分钟的过程,该过程要么正常结束,要么不结束。我希望该进程将一系列状态和处理消息吐出到一个单独的滚动窗口中,以便如果出现问题,用户可以返回日志并查看是否有任何内容显示在那里。

对于我来说,用于此类处理的最佳对象和方法是什么?

添加于 2011 年 11 月 24 日

根据第一个建议,我创建了第二个 XIB,创建了一个 NSWindowController 来匹配并将它们放在一起作为一些准备工作。当在应用程序委托(delegate)中按下按钮时,我让这件事执行以下操作:

- (IBAction)runButtonPressed:(id)sender {

RunResultWindow *wc;

wc = [[RunResultWindow alloc] initWithWindowNibName:@"RunResultWindow"];

[wc showWindow:self];

}

RunResultWindow 是 XIB 和控制它的 NSWindowController 类的名称。我还添加了一个完成按钮并将其连接起来,目的是让过程的结果填满文本窗口,然后卡在那里,直到用户按下“完成”或“完成”或我最终调用该按钮的任何内容。

当我按下主窗口上的按钮时,它实际上会显示窗口,但是当按钮的代码完成时,窗口就会消失。显然我遗漏了(重要的)一步。

一旦获得窗口,我就可以添加 TextView 等......并使其正常工作。我想要的是新窗口获得焦点,然后在用户按下“完成”按钮时关闭。

此外,我从窗口方法(它返回一个地址)获取了窗口 Controller 的窗口,并在 NSWindowController 的 windowDidLoad 方法中尝试了几个窗口焦点方法,但没有成功。

再次感谢我能获得的任何信息。

添加于 2011 年 11 月 25 日

呃。也许如果我将类实例设为 ivar 而不是将其嵌入到按钮方法中,它就会起作用,瞧,它确实起作用了。哎呀。

最佳答案

听起来你想删除 NSTextView进入一个窗口,可以在其中选择并滚动文本,但不能编辑内容。

您可以像使用 insertText: 方法一样轻松地插入文本。

关于objective-c - 滚动进程状态窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8206640/

相关文章:

iphone - pushViewController 是否保留 Controller ?

ios - 带有小框架的 UIWebView 中的 Youtube 视频

ios - 如何从一个 UITableView 的两个数据源中提取数据

macos - NSAttributedString 高亮/背景颜色显示在行之间(丑陋)

java - JScrollPane 内的 JPanel

css - 垂直滚动条导致水平滚动条

objective-c - 单击按钮时重置/重新初始化/重新启动 UIViewController View 的最简单(正确)方法是什么?

xcode - 用户登录后Mac OSX App崩溃

cocoa - 将 NSTableView 中选定行中的文本显示为白色