我在可可中有一个文本域单元格和一个按钮。 我想通过点击按钮复制文本字段中的文本。
在clipboard.h中
#import <Cocoa/Cocoa.h>
@interface clipboard:NSObject {
IBOutlet id but1;
IBOutlet id numf2_1;
NSPasteboard *pasteBoard;
}
- (BOOL) writeToPasteBoard:(NSString *)stringToWrite;
- (NSString *) readFromPasteBoard;
- (id) init;
//- (IBAction) insert_cb:(id)sender;
@end
剪贴板中的
#import "clipboard.h"
//@implementation clipboard
@implementation clipboard
//- (IBAction) insert_cb:(id)sender{
- (id) init
{
[super init];
pasteBoard = [NSPasteboard generalPasteboard];
return self;
}
- (BOOL) writeToPasteBoard:(NSString *)stringToWrite
{
[pasteBoard declareTypes:[NSArray arrayWithObject:NSStringPboardType] owner:nil];
return [pasteBoard setString:stringToWrite forType:NSStringPboardType];
}
- (NSString *) readFromPasteBoard
{
return [pasteBoard stringForType:NSStringPboardType];
}
@end
我怎样才能改变这种做法?
答案 0 :(得分:1)
您实际上从未向自己发送writeToPasteboard:
消息,因此您需要这样做。您需要向文本字段询问其字符串值,并将其作为参数传递给writeToPasteboard:
消息。
更好的是,只需将按钮连接到第一响应者的copy:
操作即可。文本字段响应此消息,因此只要它是第一个响应者(或者响应者链至少足够高),操作消息将到达该字段并且该字段将自己复制文本。有关详细信息,请参阅Cocoa Event-Handling Guide。
这就是主菜单中的“复制”菜单项已经运行的方式,而且您不需要编写任何代码来实现菜单项或按钮。