我应该如何采取NSButton文本值,例如,如果我用2个按钮与文本点击和取消,我想检查哪个按钮被点击,然后显示与NSRunAlertPanel(...)的消息我点击了哪个按钮...什么我应该在点击按钮时为它写代码。如何获取NSButton的文本值?
1
A
回答
1
在你的操作方法中,你会得到一个参数,通常命名为'sender',它就是按钮。所以,你可以这样做:
- (IBAction)buttonClicked:(id)sender
{
if ([[sender title] isEqualToString:@"Click"]) {
NSLog(@"Click clicked.");
} else if ([[sender title] isEqualToString:@"Cancel"]) {
NSLog(@"Cancel clicked.");
}
}
这是最好不要使用标题检查按钮,因为标题可以以不同的本地化修改。您可以指定tag
,它只是一个int值,可用于识别不同的发件人。
1
这是典型的实现方式是每个按钮都会调用不同的动作,因此不需要检查按钮的文本。见The Target-Action Mechanism。
通常,使用用户可见文本来控制程序逻辑几乎总是一个坏主意,因为这会使本地化变得更加困难。
您可能还想进一步描述您的情况。你使用Interface Builder来创建你的界面吗?这些按钮是模态对话框还是文档窗口?
+0
好的,我明白你的观点。我只是试图尝试,如果我能做到这一点,模式对话框,是的,我使用的界面生成器。 感谢您的指针.. :) – maddy 2009-09-09 08:16:37
1
您可以在Interface Builder的检查器窗口的类信息选项卡中为按钮指定一个名称,然后在您的应用程序委托中将其声明为IBOutlet。
AppDelegate.h:
IBOutlet NSButton *ClickButton;
IBOutlet NSButton *CancelButton;
然后挂接在界面生成器插座,只需要检查哪个按钮是在你的方法发件人:
- (IBAction)buttonClicked:(id)sender
{
if (sender == ClickButton) {
NSLog(@"Click clicked.");
}
else {
NSLog(@"Cancel clicked.");
}
}
相关问题
- 1. 如何获取对象的文本值?
- 2. 如何获取JRadioButton的文本值
- 3. 如何获取多个文本框值?
- 4. 如何从OptionSet中获取值/文本?
- 5. C#如何从PasswordBox获取文本值?
- 6. gwt suggestionBox如何获取文本,值对
- 7. 获取文本值
- 8. 如何从文本旁边的文本框中获取值
- 9. 获取文本框的值
- 10. 获取文本框的值
- 11. 如何获取文本框的文本?
- 12. 如何在文本文件中获取RGB值和坐标值?
- 13. 获取NSCollectionViewItem NSButton的表示对象值点击
- 14. NSButton的值为1
- 15. 如何获取NSButton的发件人名称
- 16. 从值中获取文本
- 17. javascript/jquery ::获取文本值?
- 18. 如何获取PDF文件的文本背景颜色(RGB值)?
- 19. 如何在文本框中获取文件上传的值?
- 20. 如何使用Qt获取文件内部文本的值?
- 21. 如何使NSButton在NSButton之上?
- 22. 如何获取组件的值本机
- 23. 如何通过Interface Builder设置NSButton的文本颜色?
- 24. 如何使NSButton标题底部,为本?
- 25. 如何获取C++中的文本框的值?
- 26. 如何获取/设置动态创建的文本框的值
- 27. 如何获取jsp中禁用的文本字段的值
- 28. 如何使用jquery获取表格内的文本框的值?
- 29. 如何获取javascript动态添加的文本字段的值
- 30. 如何获取jQuery表中的文本框的值
感谢,它帮助我。我会尽量用标签检查它。 – maddy 2009-09-09 08:11:21