/* * Copyright (c) 2023 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "ClipboardObjc.h" #include #import using namespace std; void ClipboardObjc::SetClipboardData(const std::string& data) { NSPasteboard *pClipboard = [NSPasteboard generalPasteboard]; if (pClipboard == nil) { return; } [pClipboard clearContents]; NSString *dataStr = [NSString stringWithCString:data.c_str() encoding:NSUTF8StringEncoding]; if (dataStr == nil) { return; } [pClipboard declareTypes:[NSArray arrayWithObject:NSPasteboardTypeString] owner:nil]; [pClipboard setString:dataStr forType:NSPasteboardTypeString]; } const std::string ClipboardObjc::GetClipboardData() { NSPasteboard *pClipboard = [NSPasteboard generalPasteboard]; if (pClipboard == nil) { return ""; } NSString *dataStr = [pClipboard stringForType:NSPasteboardTypeString]; if (dataStr == nil || dataStr.length == 0) { return ""; } return string([dataStr UTF8String]); }