在macOS 10.14 Mojave中支持工具栏可见性

时间:2018-07-03 13:25:21

标签: objective-c macos autolayout macos-mojave

我正在测试现有应用程序在Mojave上的工作方式,发现布局存在奇怪的问题。切换窗口工具栏的可见性为关闭状态,然后再打开,将使工具栏显示在内容的顶部,而不是将其按下。

摘要:

ERROR: ImpalaRuntimeException: Error creating Kudu table 'impala::default.my_first_table'
CAUSED BY: NonRecoverableException: Not enough live tablet servers to create a table with the requested replication factor 3. 1 tablet servers are alive.

任何想法都可能导致该问题以及如何解决该问题?

编辑1:

我已经创建了一个简单的项目here

复制步骤:

  
      
  1. 使用Xcode 10 beta运行项目(需要Mac OSX Mojave)
  2.   
  3. 按“隐藏工具栏”按钮。这将隐藏工具栏并       更新按钮标题。
  4.   
  5. 按“显示工具栏”
  6.   

恢复:

  

工具栏看起来坏了。它在控制器上。

预期结果:

  

它应该像在任何其他操作系统版本上一样工作。控制器的顶部约束应向下移动。

编辑2:

也许我在{strong> Layer-Backed Views 部分下的AppKit Release Notes for macOS 10.14 beta中找到了一条线索。

  

隐含依赖于祖先重绘的视图,   后代或相交的同级被重画可能不会被重画。如   之前,如果需要重绘视图,请设置其needsDisplay属性   为是。从wantUpdateLayer返回YES的视图通常是   给定一个排他层,即使视图的wantLayer属性为   设置为NO。定位到macOS 10.14的应用应首选   想要的属性而不是想要的属性。

我仍然不确定如何解决它。

修改3: 随着Mojave的正式发布,这不再是问题。谢谢,我非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我有一个类似的问题。我有一个没有工具栏的spash窗口,然后淡出它并显示带有工具栏的另一个窗口。 在正式版的Mojave中,带有工具栏的窗口的布局已损坏(视图显示在工具栏下方)。要解决此问题,我先隐藏然后再次显示窗口的工具栏: -(void)viewWillAppear {     [super viewWillAppear];     如果(_firstTime){         _firstTime = NO;         NSWindow *窗口= self.view.window;         window.toolbar.visible = NO;         window.toolbar.visible = YES;     }  }