- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这不是关于窗口的外观 - 或者 - 关于传递参数,而是能够调用 makeKeyAndOrderFront 通过代码(IB 接收器操作可以正常工作,窗口实现 block 中的方法也可以)的实例方法,来自另一个类。
我知道这应该是微不足道的,而且我没有正确掌握消息传递结构或正确执行我的声明,但我已经开始兜圈子,SO和其他博客和论坛上的许多问题还没有解决已经足够接近这种确切的方式来帮助我找到我出错的地方。
虽然我已经尝试了很多事情,但这(尽管不正确)可能是最明显地展示我尝试要做的事情:
NSWindow 子类
@interface hTaskWindow
- (id)initWithContentRect:// etc...
- (IBAction)hWindowActivate:(id)sender;
// ...
@end
@implementation hTaskWindow
- (id)initWithContentRect:(NSRect)contentRect styleMask:(unsigned int)aStyle backing:(NSBackingStoreType)bufferingType defer:(BOOL)flag {
self = [super initWithContentRect:contentRect styleMask:NSFullSizeContentViewWindowMask backing:NSBackingStoreBuffered defer:NO];
[self setTitle:titlename];
[self setStyleMask:[self styleMask] | //
//
// Plus a bunch
// of style
// customisations here
//
// "Visible at launch" is Unticked on this Window.
//
//
-(void)activateDebugWindow { // <--------- I just want to call this from anywhere!
NSLog(@"This works fine when triggered from IB button");
[self makeKeyAndOrderFront:self];
}
-(IBAction)hWindowActivate:(id)sender {
[self activateDebugWindow];
}
@end
NSObject 子类:
@interface AppController : NSObject {
}
@end
@implementation AppController
// whole bunch of working stuff ...
NSLog(@"This logs fine when I press my global hotkey");
hTaskWindow *hwindow; // Nothing happens
[hwindow makeKeyAndOrderFront:(hwindow)]; // Here at all
NSLog(@"This logs fine when I press my global hotkey");
// whole bunch of working stuff ...
@end
目标是从另一个类以编程方式打开 hTaskWindow
我有一个带有热键的菜单快捷方式,直接连接到窗口 Controller 上的接收器操作makeKeyAndOrderFront
,该操作打开窗口
我有一个连接到 hWindowActivate
的 NSButton
,它也打开窗口
我有一个全局热键,可以成功在 NSLog 中记录条目
但是我想做的是让我的全局热键方法激活在另一个类中打开窗口的函数。
当前从 IBAction 调用的不必要的 -(void)activateDebugWindow
只是尝试设置一个点,让 XIB 和 一段代码可以带来打开同一个窗口。
最佳答案
hTaskWindow
应该在应用程序的 xib 中。在应用程序委托(delegate)中添加一个 socket 以连接到 hTaskWindow
。 hWindowActivate
应该在应用程序委托(delegate)中。您可以使用[[NSApp delegate] hWindowActivate:sender]
从任何地方激活该窗口。 .
-(IBAction)hWindowActivate:(id)sender {
[self.hTaskWindow makeKeyAndOrderFront:sender];
}
将 IB 中的菜单项和按钮连接到应用程序代理或第一响应者和 hWindowActivate:
.
关于objective-c - Cocoa:从另一个类触发 NSWindow makeKeyAndOrderFront 实例方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45140255/
我有一个主窗口,它是我的应用程序的中心。对于不同的功能,我打开一个子窗口来处理某些专门的功能。我希望所有窗口都能独立移动,但现在如果我移动原始的中央窗口,那么所有这些子窗口都会随之移动。如何使子窗口断
当我打开自动释放的 NSWindow 时,一切正常。仅当我单击“确定”按钮后,NSWindow 才会由我的根类释放。 但是,当我打开一个 NSWindow 并从打开的 NSWindow 打开一个新的
这两个委托(delegate)方法在 NSWindow 开始移动之前或 NSWindow 停止移动之后调用。 -(void)windowWillMove:(NSNotification *)notif
我想在 NSWebView 上添加一些 UI 控件,由于这个问题“https://stackoverflow.com/questions/9120868/video-in-nswebview-hide
因此,我正在构建一个程序,该程序的特点是使用 IKImageBrowserView 组件作为 NSWindow 中的 subview 。作为旁注,我有一个名为 ImageBrowserControll
我需要在第一次运行后显示主窗口后立即显示一个工作表对话框。如果我在 init 中执行此操作或从 nib 中唤醒,它似乎无法正常工作(如果我在 init 方法中执行此操作,则工作表显示为与主窗口分离的窗
对于高技能的 Cocoa 程序员来说,这可能是一个简单的问题,但我找不到如何在单独的窗口中控制图形。我仔细阅读了Cocoa相关的书籍,浏览了很多网络笔记,但我找不到解决我的问题的方法。目的是使用专用窗
在 OS X 上是否可以通过编程方式访问缩放或最大化窗口的恢复窗口位置。 即:在大多数 OS X 应用程序中,您可以双击标题栏来缩放它。如果您再次双击它,它会恢复到之前的位置。 我希望能够获取和设置保
我正在以编程方式创建一个需要跨越 2 个屏幕的窗口。正在创建的窗口的大小是正确的,但窗口大约从第一个屏幕的一半开始。我可以将它拖回第一个屏幕的开头,NSWindow 非常适合。 我只需要知道在窗口的起
在 Creating a custom title bar on a standard NSWindow 的帮助下,我一直在尝试为 NSWindow 创建自定义标题栏. NSView *themeFr
当主(唯一)关闭时,如何正确退出 Mac OS X 应用程序? 我知道有一个方法- (void)windowWillClose:(NSNotification *)notification在 NSWi
我有自定义 NSWindow,自定义 NSView 设置为它的 contentView。 窗口被初始化为: [window setOpaque:NO]; [window setBackgroundCo
我正在 Xcode5 中为 Mac OSX 开发一个应用程序 我想全屏显示我的第一个窗口(没有工具栏只是我的 View ) 我找到了一种在角落显示全屏按钮的方法: AppDelegate.m: - (
当 NSWindow 尝试关闭时如何显示 NSAlert?这也必须打开和关闭。 最佳答案 NSWindow 的委托(delegate)有一个 windowShouldClose:方法将允许您自定义它。
Thread Safety Summary developer.apple.com 上声明 NSWindow 是线程安全的*并且可以从工作线程创建。 我有一个工作线程,我创建得相当简单: [NST
我正在尝试创建一个我创建的窗口来接受从取景器拖放到其上的文件,当我尝试将文件拖到窗口上时发生的所有情况都是它会弹回到桌面上的位置。显然我没有设置正确的东西。 在NSWindowController:i
我的 Cocoa 应用程序在屏幕上显示一个透明窗口,但是当用户尝试使用 Mac OS X 的内置屏幕捕获键并可选择选择完整窗口(Command-Shift-4,然后空格键)进行屏幕截图时),我的窗口被
我正在实现一个支持全屏模式的Cocoa应用程序。如果用户在全屏模式下工作时退出,我需要以全屏模式启动应用程序, 启动应用程序时,我检查应用程序是否应以全屏模式启动,然后在 NSWindow 上调用 t
在常见情况下,应用程序的布局将是 TITLE 位于顶部,ViewController 位于底部。但是,我想让我的应用程序具有左右显示功能。 使用分割 View Controller ,标题仍将位于所有
NSWindow 关闭后如何获取事件或通知?我能找到的最近的东西是 NSWindowDelegate 中的 windowWillClose: 方法。但这个方法是在 NSWindow 即将关闭时调用的,
我是一名优秀的程序员,十分优秀!