Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 可可:如何使图标一直依靠权利?_Objective C_Macos_Cocoa - Fatal编程技术网

Objective c 可可:如何使图标一直依靠权利?

Objective c 可可:如何使图标一直依靠权利?,objective-c,macos,cocoa,Objective C,Macos,Cocoa,此窗口状态栏。如何使图标一直依赖右侧?调整窗口大小时,它会自动向右移动 -(void)composeInterface{ NSView *themeFrame=[[self.window contentView] superview]; NSRect themeFrameRect = [themeFrame frame]; NSRect accessoryViewFrame =[self.statusBarBtn frame]; NSRect newFrame =

此窗口状态栏。如何使图标一直依赖右侧?调整窗口大小时,它会自动向右移动

-(void)composeInterface{
    NSView *themeFrame=[[self.window contentView] superview];
    NSRect themeFrameRect = [themeFrame frame];
    NSRect accessoryViewFrame =[self.statusBarBtn frame];
    NSRect newFrame = NSMakeRect(30,
                                 themeFrameRect.size.height - accessoryViewFrame.size.height,
                                 accessoryViewFrame.size.width,
                                 accessoryViewFrame.size.height);

    [self.statusBarBtn setFrame:newFrame];
//    [self.statusBarBtn setFrameOrigin:NSMakePoint(0, 0)];
//    [self.statusBarBtn setAutoresizingMask:323];

    [themeFrame addSubview:self.statusBarBtn];
}


如果你想让你的图标向右对齐,你需要改变它的自动大小以向右对齐。您需要在尺寸检查器中执行以下操作:

或者像这样使用
-setAutoresizingMask

[self.statusBarBtn setAutoresizingMask:333]; //NOT 323

此外,您的
newFrame
的x位置设置为30,因此图标将位于左侧

更改此选项:

NSRect newFrame = NSMakeRect(30,
                             themeFrameRect.size.height - accessoryViewFrame.size.height,
                             accessoryViewFrame.size.width,
                             accessoryViewFrame.size.height);
NSRect newFrame = NSMakeRect(themeFrameRect.size.width - accessoryViewFrame.size.width,
                             themeFrameRect.size.height - accessoryViewFrame.size.height,
                             accessoryViewFrame.size.width,
                             accessoryViewFrame.size.height);
对此:

NSRect newFrame = NSMakeRect(30,
                             themeFrameRect.size.height - accessoryViewFrame.size.height,
                             accessoryViewFrame.size.width,
                             accessoryViewFrame.size.height);
NSRect newFrame = NSMakeRect(themeFrameRect.size.width - accessoryViewFrame.size.width,
                             themeFrameRect.size.height - accessoryViewFrame.size.height,
                             accessoryViewFrame.size.width,
                             accessoryViewFrame.size.height);

@孤魂楚 因为若你们使用323,你们的按钮的宽度将在调整窗口大小时改变,对齐方式将只是向右,而不是顶部和右侧。没问题,很高兴有帮助。