[英]how can i copy the text in the textfield cell (in cocoa) to NSPasteboard?
我在可可粉中有一個文本框單元格和一個按鈕。 我想通過單擊按鈕在文本字段中復制文本。
在剪貼板中
#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
我該如何更改才能做到這一點?
您實際上從未向自己發送writeToPasteboard:
消息,因此您需要這樣做。 您需要向文本字段詢問其字符串值,並將其作為參數傳遞給writeToPasteboard:
消息。
更好的是,只需將按鈕連接到第一響應者的copy:
動作。 文本字段會對此消息做出響應,因此只要它是第一個響應者(或至少在響應者鏈中足夠高),操作消息就會命中該字段,並且該字段將自行復制文本。 有關更多信息,請參見《 可可事件處理指南》 。
這就是主菜單中“復制”菜單項已經起作用的方式,並且您無需編寫任何代碼即可實現菜單項或按鈕。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.