如何让 Cocoa NSTextView 随着用户输入而增长?

2024-02-11

对于我正在编写的 Cocoa 应用程序,我希望在主文档内容的右侧支持一个面板,用户可以在其中为当前选定的文档内容添加注释。 (如果您熟悉 Microsoft Word 或 Scrivener,此功能类似于这些应用程序中的注释功能。)Scrivener 做得很好,从大小适合默认文本的文本字段开始,然后随着用户的需要将其增长得更高键入其中。我想为我的 Cocoa 应用程序实现相同的行为。

基本策略是什么?


有一些委托方法允许您捕获实际的击键。

实现以下委托方法以基于键盘退出第一响应者

-(BOOL)textFieldShouldReturn:(UITextField *)textfield

实现以下委托方法来检测焦点何时返回到 TextField。您可能还想删除当前文本,或者保留已经存在的文本(如果您愿意)

-(void)textFieldDidBeginEditing:(UITextField *)textfield

实现下面的委托方法来检测输入的字符和位置(基于插入符位置),并将字符添加到您私有和显示的字符串中(显示到您的文本字段)

-(BOOL)textView:(NSTextView *)aTextView shouldChangeTextInRange:(NSRange)affectedCharRange replacementString:(NSString *)replacementString

实现下面的委托方法来检测编辑何时完成,以便您可以执行您想要执行的任何其他清理等操作。

-(void)textFieldDidEndEditing:(UITextField *)textField

我会回复你有关 TextView 本身的动态大小调整的问题,但我已经看到(至少在 iOS 上)有一个解决方案,并且我曾经使用过它。您基本上可以使字体大小静态,可能使宽度静态,然后根据您拥有的行数编辑高度,或者您可以保持高度静态,并根据字符更改宽度等......由您决定。

以下是 StackOverflow 上关于动态调整大小的一组精彩回复如何根据其内容调整 UITextView 的大小? https://stackoverflow.com/questions/50467/how-do-i-size-a-uitextview-to-its-content

因此,如果您将击键识别与动态大小调整结合起来,您应该拥有它!

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

如何让 Cocoa NSTextView 随着用户输入而增长? 的相关文章

  • 断点条件错误

    我已经根据条件设置了断点 event name isEqualToString Some Name 这很好用 但是 当我尝试添加另一个带有条件的断点时 part name isEqualToString Some Value With A
  • 如果加载 dylib,垃圾收集工作队列会崩溃

    我们正在将应用程序从 10 6 移植到 10 8 我正在查看我们在应用程序中加载的 dylib 我面临着非常不寻常的崩溃垃圾收集工作队列并附有以下消息 malloc Thread suspend unable to suspend a th
  • 在回调函数中调用目标c函数

    如何在回调函数中调用目标c函数 回调函数 static OSStatus inputRenderCallback void inRefCon AudioUnitRenderActionFlags ioActionFlags const Au
  • 如何在应用程序项目中使用 Cocoa Touch 框架

    我熟悉构建单个 iOS 应用程序 但我坚持使用 Cocoa Touch 框架向多个应用程序共享通用代码 问题 框架的头文件不可见 无法链接到消费应用程序项目 我做了什么 1 我创建了一个名为 libTestFramework 的项目 Coc
  • 如何为图层阴影不透明度设置动画?

    我有一个视图 我已将 LayerOpacity 设置为 1 theView layer shadowOpacity 1 0 当视图位于屏幕下方时 这看起来很好 当我将此视图向上移动以与另一个有阴影的视图齐平时 它们看起来不太好 有没有办法让
  • 为 html5 输入类型渲染 asp.TextBox =“date”

    不知道以前有没有问过 也没找到 是否可以控制由 asp TextBox 呈现的输入文本的类型 我想把它改成
  • 从plist文件中读取数据

    我正在尝试为我的 iPhone 应用程序实现保存状态 我有一个名为 SaveData plist 的 plist 文件 我可以通过以下方式读取它 NSString pListPath2 bundle pathForResource Save
  • 在成为FirstResponder或resignFirstResponder的情况下将对象保持在键盘顶部?

    我目前在键盘顶部有一个 UITextField 当您点击它时 它应该粘在键盘顶部并平滑地向上移动 我不知道键盘的具体时长和动画类型 所以确实很坎坷 这是我所拥有的 theTextView resignFirstResponder UIVie
  • 对象指针值作为字典的键

    我想使用对象的引用值作为字典的键 而不是对象值的副本 因此 我本质上想在字典中存储与另一个对象的特定实例关联的对象 并稍后检索该值 这可能吗 是不是完全违背了NSDictionary的理念 我可以看出我可能以错误的方式处理这个问题 因为字典
  • 将一个文本框的值分配给另一个文本框

    看过类似问题的答案 但对于我的一生 我无法弄清楚我做错了什么 我有两个文本框和一个按钮 当文本添加到第一个文本框并按下按钮时 我想将第一个文本框的值 文本应用到第二个文本框
  • 在故事板中将 UITableView 的 rowHeight 设置为 UITableViewAutomaticDimension ?

    在 Xcode 6 中创建 iOS 8 应用程序时 如何设置 UITableViewrowHeight to UITableViewAutomaticDimension In WWDC 2014 第 226 场会议 表和集合视图中的新增功能
  • 为什么 Objective-C 方法名称的最后一部分必须带有参数(当有多个部分时)?

    在 Objective C 中 您不能声明最后一个组件不带参数的方法名称 例如 以下内容是非法的 void take id theMoney andRun void take id yourMedicine andDontComplain
  • 如何解决malloc_error_break?

    我在 iOS 3 0 模拟器上遇到此错误 但在 3 1 3 和 3 2 模拟器上没有遇到此错误 创建符号断点后malloc error break 我在日志中看到了这一点 Session started at 2010 02 13 19 1
  • ARC 不允许将 Objective-C 指针隐式转换为“void *”

    这意味着什么 我有什么选择 ARC 不允许将 Objective C 指针隐式转换为 void 我正在将 Xcode3 项目移植到 iOS5 它使用 AudioSessionInitialize 如下 AudioSessionInitial
  • 在文本视图滚动之前无法看到 UITextView 中的文本

    我的应用程序中有一堆文本视图 由于某种原因 无论我以编程方式 来自互联网 还是通过界面生成器 硬编码 设置 UITextView 文本 无论我做什么 当我在测试时转到该文本视图时它都是空白的 但当我滚动它的那一刻 所有文本就突然出现了 只是
  • ios 在后台处理推送通知

    我想保存应用程序处于后台状态时到达的推送通知 我知道关于 void application UIApplication application didReceiveRemoteNotification NSDictionary userIn
  • 高效创建 x 层深度的嵌套 for 循环

    这可能是一件简单的事情 但我需要创建一个循环结构 使其循环 y x 次以创建 x 和 y 的所有可能组合 例如 如果有 4 个 x 每个 x 有 2 个 y 我想做这样的事情 for int a 0 a lt y a for int b 0
  • NSCFData fastCharacterContents 崩溃? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我目前在控制台中收到此崩溃日志 20
  • ios 导航 堆栈操作

    我在尝试从 iOS 应用程序操作导航堆栈时遇到问题 或者至少是由于这种操纵而产生的行为 我的情况 我有 3 个 ViewController 控制器a显示多个级别 控制器 b 是游戏视图 控制器 c 是某种分数 显然 我将在控制器 a 中选
  • 关于窗口层次结构的警告

    我的调试器中出现这样的警告 这是什么意思 Warning Attempt to present

随机推荐

  • 如何修改ActiveXObject JS构造函数?

    我需要包装一个 IE ajax 请求以在发生时通知我 即我需要知道何时调用 open var xhr new ActiveXObject Microsoft XMLHTTP 做到这一点的唯一方法 我认为 是实现 ActiveXObject
  • 多个 ajax 调用的 jQuery 回调

    我想在单击事件中进行三个 ajax 调用 每个 ajax 调用都会执行不同的操作并返回最终回调所需的数据 这些调用本身并不相互依赖 它们可以同时进行 但是我希望在所有三个调用完成后进行最终回调 button click function f
  • 使用 Stream 比较两个集合 - anyMatch

    我想比较 a 中是否有任何对象list2存在于一个list1 我可以迭代两个列表并使用比较所有元素 contains 但我想知道是否没有更有效的方法 我发现this https stackoverflow com questions 225
  • 在 oninvalid 消息中创建换行符

    我想在 oninvalid 弹出消息中创建换行符 以便我可以在不同行上列出错误消息的多个要求 这是我试图创建的示例代码
  • R networkD3:单击操作显示节点数据帧的信息

    我有这个代码 library networkD3 Load data data MisLinks data MisNodes new nodes lt MisNodes new nodes var1 lt runif nrow MisNod
  • Android:如何在 Android 应用程序中显示谷歌地图?

    我已经构建了一个应用程序 可以为我进行一些坐标计算 它工作得很好 它也从我构建的数据库中检索点 我现在想做的是当按下菜单按钮时显示地图 我做了一个教程 只是一个地图显示 这就是它运行时所做的一切 但是当我尝试将我所做的事情合并到我的应用程序
  • UTF-8 中的值在 JSON 中被编码为 NULL

    我有一组关键字通过 JSON 从数据库 编码的 UTF 8 传递 其中一些可能具有特殊字符 如 等 这用作自动完成器的一部分 例子 array Coffee Cappuccino Caf 我应该补充一点 来自数据库的数组将是 array C
  • android:webview 未使用自定义 WebViewClient 加载 javascript

    我有一个非常基本的WebView这一直有效 直到我尝试添加自定义webViewClient它停止处理 JavaScript 的地方 难道我做错了什么 是否有另一种方法可以摆脱 WebView 中的地址栏和菜单选项 browser WebVi
  • Yii 框架中的 PHP 异步方法调用

    Question 我想知道是否可以在操作呈现视图时从 Yii 控制器方法之一异步调用该方法 让该方法完成长时间运行的操作 我想做类似下面的代码的事情 并且不需要返回结果my long running func public function
  • Postgresql 错误:“无法找到从未知到文本的转换函数”

    我有以下 postgresql 查询 with A as select 201405MASE04 as TestID Count TotQ Count distinct Case When SE1 then NULL else SE1 en
  • 如何释放 Protocol Buffer 内存

    message LongUserIdSeqIdMapData map
  • PayUmoney Android 集成问题

    我正在尝试将 PayUMoney 集成到我的应用程序中 如果我使用以下测试凭据 应用程序会给出正确的输出 String merchant key kYz2vV String salt zhoXe53j String base url htt
  • 具有立体 3D 重建功能的 OpenCV

    假设我计划使用 OpenCV 使用立体方法进行 3D 重建 并且我没有任何特殊的立体相机 只有网络摄像头 1 如何使用一组网络摄像头构建廉价的立体声设置 2 是否可以使用网络摄像头拍摄两个图像并使用 openCV API 将它们转换为立体图
  • java 中的 swt 中未打开且菜单未显示

    我想在java中嵌入microsoft word 我的程序将在 jframe 中打开一个 word 文档文件 经过大量搜索后 我找到了以下解决方案 在 JFrame 中打开 MS 文档 https stackoverflow com que
  • jQuery:使用变量作为函数名

    我正在尝试创建一个函数 根据我正在交互的元素的类来调用其他函数 我希望能够使用元素的类来调用函数 而不是使用 if 语句 下面的例子 function validate thisInput var thisClass thisInput a
  • 为什么 JavaFX 在使用文本组件时在字母之间添加额外的间距以及如何修复它?

    我正在尝试使用 JavaFX 的文本组件在我的应用程序中做一些漂亮的标题排版 然而 文本中的字母间距并不均匀 例如在单词 visiting the iting 这一部分似乎与第一部分脱节 在示例图像中 我使用 Arial 但我尝试的每种字体
  • Mac 上使用 zsh 绑定密钥

    我一直在尝试在 Mac 上绑定 zzh 中的按键 但遇到了一些问题 我知道我应该用谷歌搜索这个 但找不到我需要的东西 我一直在尝试将 ctrl backspace 绑定为与 ctrl w 等效 即删除一个单词 但我找不到它的关键代码 当我用
  • 有 Json 标签但未导出[重复]

    这个问题在这里已经有答案了 开始学习golang 任务 获取 Json 并解组它 但我得到了错误 Json tag but not exported 如何让未导出的字段变成导出的 然后用方法实现呢 这是代码 package main imp
  • 通过mvc转发器发布值

    Form using IEnumerable
  • 如何让 Cocoa NSTextView 随着用户输入而增长?

    对于我正在编写的 Cocoa 应用程序 我希望在主文档内容的右侧支持一个面板 用户可以在其中为当前选定的文档内容添加注释 如果您熟悉 Microsoft Word 或 Scrivener 此功能类似于这些应用程序中的注释功能 Scriven