基于 NSSplitViewController 的应用程序几乎永远不会以正确的大小启动

2024-04-01

我有这个应用程序,它使用NSSplitViewController作为根并且有一个NSTabViewController作为其详细视图控制器连接。

此应用程序设置为以 1024x768 启动。左窗格应以 320x768 启动,右窗格(tabViewController 所在位置)应以 704x768 启动。

从我运行这个应用程序 10 次开始,有 9 次它会以不正确的尺寸(大约 500x500)启动。其他奇怪的事情是这个应用程序不应该是可扩展的,但是如果您将鼠标悬停在窗口边框附近,您会看到光标指示可以缩放。

我希望它以正确的大小启动,并且没有可扩展的选项。

这两个设置都在界面生成器上,但都被忽略。

您可以在此处下载演示该问题的示例项目 http://www.filedropper.com/split_1。停止并运行该项目几次以查看问题。

我该如何解决这个问题?


我无法确定导致问题的原因,但解决该问题的一种方法是添加一些约束。 Interface Builder 不允许您约束它插入到拆分视图的左侧和右侧面板中的默认 NSView 实例,因此您需要添加自己的实例。下面的屏幕截图 取自您的演示,但在我完成以下操作之后:

  1. 向左分割添加了一个子视图(我的内容视图),并将其边缘固定到其超级视图的边缘(Xcode 视图自动添加到 splitview 中)
  2. 添加了 320 像素的显式宽度约束我的内容视图

当我加载应用程序时,两个分割都可见,分隔线不会移动,并且窗口无法调整大小。

更新-更好的解决方案

虽然约束是解决这个问题的一种方法,但我认为问题的根源在于 Interface Builder 中的一些意外行为。当您拖动NSSplitViewController对象到画布上,并使其成为窗口控制器的目标content window关系,分割视图控制器的view实际上并未设置插座。这样做的一个后果似乎是,当您加载应用程序时,分隔线似乎位于一侧。要解决此问题,请将上述视图出口设置为指向拆分视图:

我创建了一个演示项目 https://github.com/pazzer/SpaceDogSplitView其设置类似于提问者的演示应用程序中的设置。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于 NSSplitViewController 的应用程序几乎永远不会以正确的大小启动 的相关文章

  • 在 Mac 操作系统上使用 ffmpeg 录制视频

    我想在 mac OS 上使用 ffmpeg 以任何格式录制实时网络摄像头视频 我尝试了很多 但无法找到用于重新编码视频的命令 所以请任何人都可以告诉我 ffmpeg 命令用于使用 Mac 操作系统的网络摄像头捕获视频 提前致谢 对于 Mac
  • 如何在 NSTextView 中使用 SPACE 而不是 TAB

    我只知道如何修改 NSTextView 中的制表符宽度 NSMutableParagraphStyle paragraphStyle self defaultParagraphStyle mutableCopy paragraphStyle
  • gem install mysql:无法构建 gem 本机扩展 (Mac Lion)

    我为 Mac OS X Lion 安装了 MySQL 5 5 27 来自 dmg 现在我尝试安装 mysql gem gem install mysql Building native extensions This could take
  • Xcode 9:“clang:错误:生成多个输出文件时无法指定 -o”

    我刚刚将 Xcode 更新到版本 9 并且在编译时开始收到以下错误消息 该问题似乎与将 优化级别 参数设置为 无 即 O0 进行编译有关 如果我将其设置得更高 错误就会消失 但是当我增加优化时 调试工具将无法正常工作 例如变量跟踪 我查看了
  • OpenCV 无法从 MacBook Pro iSight 捕获

    几天后 我无法再从 opencv 应用程序内部打开我的 iSight 相机 cap cv2 VideoCapture 0 返回 并且cap isOpened 回报true 然而 cap grab 刚刚返回false 有任何想法吗 示例代码
  • NSSavePanel:压制“确认替换?”对话

    在导航服务领域 人们可以指定kNavDontConfirmReplacement作为创建一个选项NavDialogRef当使用已存在的文件名保存时 不会要求用户确认文件的替换 如何指定与 Cocoa 等效的行为NSSavePanel 具体方
  • 如何在 MAMP 上显示错误?

    我有 MAMP 但我不知道如何在其上显示错误 当我的 php 代码出现错误时 它只显示空白页 我在 Google 上搜索过 我发现我必须在所有文件夹和版本上将其更改为 display errors on 并将其包含在我的页面上 错误报告 E
  • 在 Mac 上开发和测试 ASP.NET 的应用程序 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我开始学习一些asp net 所以我正在寻找一个使用mac 开发asp net 的应用程序 我知道 D
  • 如何在 *nix 中登录时运行脚本?

    我知道我曾经知道如何做到这一点 但是 如何在 unix 中登录时运行脚本 bash 可以 From 维基百科 Bash http en wikipedia org wiki Bash 28Unix shell 29 当 Bash 启动时 它
  • NSPoint/NSRect 来自 NSTextView 中的字符

    所以我试图获取与 NSTextView 中特定字符的位置相对应的 NSPoint 或 NSRect 这就是我到目前为止所拥有的 效果不是很好 结果似乎有点不可预测 NSRange theTextRange theTextView layou
  • npm 命令 create-react-app 失败

    我正在尝试在运行 Os X sierra 10 12 6 的计算机 mac pro 2017 上测试reactjs 我已经遵循了 Facebook 教程 确保您安装了最新版本的 Node js done 按照安装说明进行操作创建一个新项目
  • 如何在没有 SDK 的情况下在 Objective C 中为 S3 创建预签名 URL?

    我正在构建一个 mac 应用程序not使用 AWS iOS 开发工具包 我尝试构建的 GET 请求应遵循以下通用格式 Authorization AWS AWSAccessKeyId base64 hmac sha1 VERB n CONT
  • Mac 应用程序商店 - 尝试让加密发挥作用。 。 。我缺少什么?

    我正在尝试使用 Alan Quartermain 的解决方案 如该问题所链接 Mac App Store 收据验证码 https stackoverflow com questions 4261348 mac app store recei
  • 对 Mac“捆绑”文件进行版本控制的最佳方法

    所以你知道很多 Mac 应用程序都使用 捆绑包 对于你的应用程序来说 它看起来像是一个文件 但实际上它是一个包含许多文件的文件夹 对于要处理此问题的版本控制系统 它需要 检出目录中的所有文件 以便应用程序可以根据需要修改它们 at chec
  • 如何表示Apple 发布的Mac OSX 崩溃报告?

    对于 iOS 崩溃报告 将崩溃报告拖放到管理器中就足够了 符号化 iPhone 应用程序崩溃报告 https stackoverflow com questions 1460892 symbolicating iphone app cras
  • 像 TraceGL 一样分析 Objective C 中的代码路径?

    TraceGL 是一个非常简洁的项目 它允许 JS 程序员跟踪 Javascript 中的代码路径 它看起来像这样 我想为 Objective C 构建类似的东西 我知道运行时使跟踪方法调用变得相当容易 但是我如何跟踪控制流 例如 在上面的
  • ansible unarchive 模块如何查找 tar 二进制文件?

    我正在尝试执行一个 ansible 剧本 该剧本的任务是利用unarchive模块 因为我是在 OSX 上执行此操作 所以我需要使用它gnu tar 而不是bsd tar通常与 OSX 一起提供 因为BSD tar 不受官方支持 https
  • 体系结构 x86_64 的未定义符号:用于 caffe 构建

    我收到此错误的原因是caffe http caffe berkeleyvision org 建造 我该如何修复它 我使用的是 Mac OSX Yosemite 10 10 1 控制台日志 Machida no MacBook Air caf
  • C“睡眠”函数(大写“S”)在 Mac 上有什么作用?

    注意其中的大写 S Sleep Sleep大写 S 是在 PC 上休眠毫秒的标准函数 在 Mac OS X 上 没有这样的符号 然而 Xcode 链接环境似乎找到了可以链接到的东西 它是什么 嗯 这是一个古老的 Carbon 函数 在 Co
  • 使用c#在mac上启动外部进程

    我成功地使用 System Diagnostics Process Start 在 Windows 上启动我的外部单声道可执行文件 然而在mac上却失败了 我没有收到任何错误 只是什么也没发生 我尝试按以下方式进行操作 System Dia

随机推荐

  • 为什么 vue v-model 不适用于数组 prop?

    我有一个自定义组件 它采用modelValue道具并发出update modelValue事件 在父组件中 我传递一个数组 测试组件 vue
  • Azure 服务总线“发送”抛出由于对象的当前状态而导致操作无效

    我不确定发生了什么变化 但突然我得到一个 InvalidOperationException 由于对象的当前状态 操作无效 我的代码以前确实有效 但我不记得更改过任何内容 我正在使用 Microsoft Azure ServiceBus 4
  • 创建 d3.js SVG 文本元素后获取其宽度

    我正在尝试获取一堆的宽度text我用 d3 js 创建的元素 这就是我创建它们的方式 var nodesText svg selectAll text data dataset enter append text text function
  • 如何在会话中运行多个图 - Tensorflow API

    张量流API https github com tensorflow models tree master research object detection提供了一些预先训练的模型 并允许我们使用任何数据集来训练它们 我想知道如何在一个张
  • 在 Pydroid 3 终端中安装 Git

    我正在使用 Pydroid3 并且想在 Pydroid 终端中使用 Git 在我的 Termux 终端中 我能够按照此处所述安装 Git git 命令现在只能在 Termux 终端中识别 但不能在 Pydroid 中识别 无法在 Pydro
  • Keras/Tensorflow 中涉及梯度的自定义损失函数

    我发现这个问题之前已经被问过几次了 但没有任何解决方案 我的问题很简单 我想实现一个损失函数 它计算预测梯度和真值之间的 MSE 最终转向更复杂的损失函数 我定义了以下两个函数 def my loss y true y pred x dyd
  • 自定义警报对话框边框

    我正在创建一个自定义对话框 其示例代码为 final AlertDialog dialog protected AlertDialog createDialog int dialogId AlertDialog Builder builde
  • 如何设计深度卷积神经网络? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 据我了解 所有 CNN 都非常相似 它们都有一个卷积层 后面是池化层和 relu 层 有些具有专门的层 例如 FlowNet 和 Segn
  • Iphone 迭代 NSString 的子字符串出现次数

    我想找到 NSString 中所有出现的子字符串 并逐一迭代以对该 NSString 进行一些更改 我该怎么做呢 怎么样 find first occurrence of search string in source string NSR
  • Angular2 模块级样式表

    我正在使用模块化结构设计我的网站sass questions tagged sass我愿意以这样的方式组织样式表 在每个模块级别 而不是组件级别 定义样式表 然后将其导入所有组件中以保持整个模块的标准布局 那么这是一个好方法吗 如果是的话
  • 如何使用 distutils 和/或 setuptools 在 mac os x 上创建 .dylib C 扩展?

    我需要使用 distutils 和 或 setuptools 创建一个 C 扩展 它可以在运行时和编译时动态使用 用于不同的目的 这在 Linux 上不是问题 但在 OS X 上却是问题 默认情况下 distutils 在 OS X 上创建
  • mongodb 字段以 $ 开头的奇怪行为

    在这个帖子上MongoDB 查找嵌套元素 https stackoverflow com questions 8983482 mongodb finding nested elements 作者声称 mongodb 文档结构是 car re
  • 本地 Dask 工作线程无法连接到本地调度程序

    在 OSX 10 12 6 上运行 Dask 0 16 0 时 我无法连接本地dask worker给当地人dask scheduler 我只是想关注官方达斯克教程 https github com dask dask tutorial b
  • rpart - 查找修剪树的 cp 值将返回的叶子数量

    我有一个要求 需要根据分类变量 具有超过 5 个类别值 与连续变量的关联将其分为 5 组 为了实现这一目标 我正在使用rpart with annova 方法 例如我的分类变量是type有代码1 2 3 4 5 6 7 8 9 10 11
  • ReferenceError:令牌未定义

    我一直在关注使用 ionic 进行身份验证的登录教程 但是当我尝试运行该程序并登录时 错误是 ReferenceError 令牌未定义 在 storeUserCredentials services js 16 在 services js
  • 使用 ASP.NET 进行卷曲请求

    我已经阅读了 Stack 上的其他一些帖子 但我无法让它工作 当我在Windows机器上的git中运行curl命令时 它在我的电脑上工作正常 但是当我将其转换为asp net时 它不起作用 private void BeeBoleReque
  • 如何识别您正在虚拟机下运行?

    有没有办法从虚拟机内识别您的代码正在虚拟机内运行 我想有或多或少简单的方法来识别特定的虚拟机系统 特别是如果虚拟机安装了提供商的扩展 例如 VirtualBox 或 VMWare 但是有没有一个通用的方法来识别你不是直接在CPU上运行的呢
  • 标准是否要求重命名是原子的?

    当我试图回答这个问题时 出现了一个有趣的问题 mv 在我的 fs 上是原子的吗 https unix stackexchange com questions 322038 is mv atomic on my fs 322074 32207
  • Windows 无法将参数传递给 python 脚本

    在 py script py 中 import os import sys l len sys argv if l 1 print no args else if l gt 1 print first arg is s sys argv 1
  • 基于 NSSplitViewController 的应用程序几乎永远不会以正确的大小启动

    我有这个应用程序 它使用NSSplitViewController作为根并且有一个NSTabViewController作为其详细视图控制器连接 此应用程序设置为以 1024x768 启动 左窗格应以 320x768 启动 右窗格 tabV