我是可可的新手.我的应用程序中有一个按钮和一个textField.我想在textfield为空时禁用该按钮,并在用户输入内容时启用.
有什么要开始的吗?Interface Builder中的任何"魔术"绑定?
谢谢
[EDITED]
我试图将appDelegate设置为NSTextfield的委托并添加了此方法(myTextfield和myButton是IBOutlets):
- (void)textDidChange:(NSNotification *)aNotification
{
if ([[myTextField stringValue]length]>0) {
[myButton setEnabled: YES];
}
else {
[myButton setEnabled: NO];
}
}
Run Code Online (Sandbox Code Playgroud)
但没有任何反应......
我只知道在iOS上显示键盘的几种方法
触摸文本字段,搜索栏,textview .....
是否可以通过触摸按钮来显示键盘???
我希望我可以用这种方式设置一个按钮,如果按钮不小或可以重命名它.
谢谢你们〜
出于某种原因,当我的按钮被禁用时,文本颜色变为白色.我希望它保持黑色 - 我怎么能这样做?
我有一组单选按钮(矩阵),它有4个选项.我怎样才能找到选择的内容(以编程方式)并获得它的BOOL?
我正在以编程方式制作几个按钮,并试图为每个按钮设置一个动作,但我似乎无法让它工作.
在我的AppController.h中我有这个代码:
...
IBOutlet NSButton* btnZoomIn;
IBOutlet NSButton* btnZoomOut;
...
Run Code Online (Sandbox Code Playgroud)
和
- (IBAction) zoomIn : (id) sender;
- (IBAction) zoomOut : (id) sender;
Run Code Online (Sandbox Code Playgroud)
并在awakeFromNib方法中的AppController.m中:
/*zoom in and out buttons*/
//get the path to the image files
NSString* zoomInImgPath = [[NSBundle mainBundle] pathForResource:@"zoomIn" ofType:@"png"];
NSString* zoomOutImgPath = [[NSBundle mainBundle] pathForResource:@"zoomOut" ofType:@"png"];
//declare the NSImages
zoomInImg = [[NSImage alloc] initWithContentsOfFile:zoomInImgPath];
zoomOutImg = [[NSImage alloc] initWithContentsOfFile: zoomOutImgPath];
//button making!
//zoomIn
btnZoomIn = [[NSButton alloc] initWithFrame:NSMakeRect(1426.0, 920.0, 25.0, 25.0)];
[btnZoomIn setButtonType:NSMomentaryPushInButton];
[btnZoomIn setTitle:@""];
[btnZoomIn …Run Code Online (Sandbox Code Playgroud) 我想创建一个NSButton在单击时发送动作的动作,但是当按下它1或2秒时它会显示一个NSMenu.这里的问题与这个问题完全相同,但由于答案没有解决我的问题,我决定再问一次.
例如,转到Finder,打开一个新窗口,浏览一些文件夹,然后单击后退按钮:您转到上一个文件夹.现在单击并按住后退按钮:显示一个菜单.我不知道如何做到这一点NSPopUpButton.
我已经尝试过几次设置几个相似的按钮,都连接到相同的IBActions,但仍然无法复制RadioButton行为.
目前,我有5个按钮,一个NSView的所有孩子..
NSView
- ButtonOne - NSButton (Square Button)
- ButtonTwo - NSButton (Square Button)
- ButtonThree - NSButton (Square Button)
- ButtonFour - NSButton (Square Button)
- ButtonFive - NSButton (Square Button)
Run Code Online (Sandbox Code Playgroud)
它们都与一个共同的IBAction相关联,其内容如下:
@IBAction func activityButtonPressed(sender: NSButton) {
println("\(sender.title) Pressed")
}
Run Code Online (Sandbox Code Playgroud)
这可以捕获实际的mosueDown事件并发送到func(如预期的那样).
如何让他们在单选按钮模式下工作?即点击各种按钮时,是否有NSOnState和NSOffState切换?
当我尝试将按钮类型更改为单选按钮时,它会自动翻转回"切换"....
干杯,
一个
我在NSTableView的每一行都有NSButtons.
按钮图像在IB中设置,是带alpha通道的黑色图标:
窗口设置为暗模式:
window?.appearance = NSAppearance(named: NSAppearanceNameVibrantDark)
Run Code Online (Sandbox Code Playgroud)
并进入正常模式:
window?.appearance = nil
Run Code Online (Sandbox Code Playgroud)
目标是窗口为白色时按钮应为黑色,窗口较暗时应为白色,单击时不改变.
在暗模式下,为了实现颜色变化,我在NSTableCellView子类中将按钮的图像"template"属性设置为true:
public override func awakeFromNib() {
if darkMode {
button.image?.isTemplate = true
} else {
button.image?.isTemplate = false
}
}
Run Code Online (Sandbox Code Playgroud)
IB中的按钮是这样制作的:
这在macOS 10.12 Sierra中运行良好:当窗口为白色时,单击黑色按钮不会改变其外观,这是完美的.
但是当窗口很暗时,点击白色按钮使其变黑,这在我的情况下是不可接受的(*).此外,模板图像在macOS 10.11 El Capitan中不起作用.
好:
点击,不行:
然后再次点击黑色按钮使其再次变白......
我的问题是:如何在单击时强制NSButton不突出显示模板图像?
我认为这是因为"瞬间变化"类型,但使用其他"瞬间"类型并没有改变任何东西,我也不能将类型设置为"自定义"(IB拒绝).
请注意,与macOS 10.12相比,这些模板图像在macOS 10.11中的行为有所不同.在Sierra中无缝工作的设置组合在El Capitan中不起作用.这也是我设置奖金的原因:我需要两个系统的解决方案.如果没有解决方案并且您知道原因,那么您的解释也是可以接受的答案.
(*)在模板图像工作的Sierra上可以使用一种解决方法,用于在use button.cell?.setCellAttribute(.cellLightsByContents, to: 0)单击时停止按钮更改颜色(尽管仍有短暂的闪光).但是在El Capitan中,按钮在黑暗模式下是黑色的,所以这不适用.
任务似乎相对简单,我想要一个if语句来确定复选框是否被检查或者显然没有复选框但是我不知所措
我试过了
如果checkbox.state == everythign我可以想到但它总是错误EXC_BAD_INSTRUCTION或使用错误的cant转换变量类型到其他变量类型
在我的Mac应用程序中,当用户将鼠标指针移到按钮上时,我想显示一些信息文本.像这样的东西:

我怎样才能正确实现这一目标?
提前致谢.