【问题标题】:NSTextField Clear ButtonNSTextField 清除按钮
【发布时间】:2011-01-22 00:53:46
【问题描述】:

在 iPhone 上,UITextField 可以设置 clearButtonMode 以在文本输入的末尾显示一个小的清除按钮 (X)。同样,在 Mac 上,NSSearchField 的末尾有一个漂亮的清除按钮。我的问题是 - 有没有办法在普通的NSTextField 上启用它?

【问题讨论】:

  • 你为什么要这个?这对于 Mac 上的非搜索文本字段是不正常的。
  • 一个例子:你使用 textField 来自用户的输入,并且将被用户动态更改。文本字段也在滚动视图内,因为大小是一个问题。为了让用户清除文本,他们需要使用 Command+a 键,然后使用退格键。拥有一个按钮可以保存所有击键。
  • 为什么要在滚动视图中放置一个文本字段?文本字段用于短文本,通常只有单行。如果文本可能太长以至于用户需要滚动条,您应该使用文本视图(在滚动视图内)。
  • 我想要一种快速的方法让我的用户能够删除他们输入到我的应用程序的特定部分的文本,而事实上,这实际上是与搜索相关的。无论如何,我真的看不出有什么大不了的。这是一个很好、简单、直观的 UI 功能,手头的问题与其说是“为什么”/“何时”,不如说是“如何”。
  • 哎呀,我的错,我的意思是它是 NSTextView,而不是 NSTextField。我总是把它们混在一起。对不起。但正如乔尔指出的那样。在这两种情况下,只需单击一下即可清除文本。

标签: cocoa nstextfield


【解决方案1】:

没有内置的;只需使用搜索字段并关闭放大镜:

[[button cell] setSearchButtonCell:nil];

【讨论】:

  • searchField.placeholderString = ""; 删除默认的“搜索”占位符。
  • 快速使用(searchField.cell as! NSSearchFieldCell).searchButtonCell = nil
【解决方案2】:

前几天我正在为多行 NSTextField 寻找相同的东西,但没有运气,所以最终使用了一个没有边框的按钮集并用一个小图像切换。设置非常接近 NSTextField(不在上面)

和:

- (IBAction)clearTextViewTex:(id)sender{

 [textField performSelector:@selector(selectAll:)];
[textField performSelector:@selector(delete:)];     

}

这样做还保留了撤消功能,而无需我编写任何 NSUndoManager 的东西。

【讨论】:

    猜你喜欢
    • 2018-12-28
    • 2019-03-25
    • 1970-01-01
    • 2012-02-16
    • 2013-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-22
    相关资源
    最近更新 更多