这是事情:
我已经创建了一个NSMenuItem带有自定义的自定义NSView.
一切正常,只是我不能让罚款NSMenuItem得到强调(=更改鼠标悬停背景颜色).
我正在尝试在drawRect方法内部进行,如此处发布的其他答案所示.
我究竟做错了什么?
该NSView子类:
@interface customView : NSView
@end
@implementation customView
- (id)initWithFrame:(NSRect)frame
{
NSRect theRect = NSMakeRect(0, 0, 200, 30);
self = [super initWithFrame:theRect];
if (self) {
NSTrackingArea * trackingArea = [[NSTrackingArea alloc] initWithRect:theRect
options: (NSTrackingMouseEnteredAndExited | NSTrackingActiveInKeyWindow |NSTrackingActiveAlways)
owner:self userInfo:nil];
[self addTrackingArea:trackingArea];
}
return self;
}
#define menuItem ([self enclosingMenuItem])
- (void) drawRect: (NSRect) rect {
BOOL isHighlighted = [menuItem isHighlighted];
if (isHighlighted) {
//this nslog …Run Code Online (Sandbox Code Playgroud) 我有一个NSTextFieldCell想要在NSTextField.
如果我将它设置在 IB 上,它就可以正常工作。

这让它像这样工作:

但我想以编程方式设置它,我尝试这样的事情:
-(void)awakeFromNib{
NSRect theRect = NSRectFromCGRect( NSMakeRect(50, 100, 100, 100));
NSTextField *inputField = [[NSTextField alloc] initWithFrame:theRect];
DRKHUDTextFieldCell *theC = [[DRKHUDTextFieldCell alloc] initTextCell:@"textfield"];
[inputField setCell:theC];
[[_window contentView] addSubview:inputField];
}
Run Code Online (Sandbox Code Playgroud)
这是我得到的结果:

出了什么问题?是我的代码不好还是什么?
可可新手在这里
我有2个nstext字段与controlTextDidChange连接.它工作正常.
- (void)controlTextDidChange:(NSNotification *)anotif{
[self eval];
}
Run Code Online (Sandbox Code Playgroud)
当任一文本字段改变eval被调用时.
我想要做的是检查更改的文本字段,如果它是第一个调用eval1,如果它是第二个调用eval2.
我怎样才能做到这一点?
这是我的故事板
如上所述,我添加了一个注销按钮,以达到第一个视图.
当应用程序启动时,它看起来像这样:

登录后,它会转到一个标签栏,如下所示:

我已将"注销"按钮与第一个视图和选定的推送连接起来.但是当我推出"退出"时会发生这种情况:

我希望登录视图按原样显示,但是会出现标签栏以及我不希望它出现的"后退"按钮.
*前3个标签项目有自己的导航控制器,注销按钮位于第一个标签项目上.
cocoa ×3
objective-c ×3
macos ×2
cocoa-touch ×1
iphone ×1
nsmenuitem ×1
nstextfield ×1
nsview ×1
uistoryboard ×1